2010-10-09 31 views
0

我试图在更改'#my_selection'(id为下拉选择)选项时检查'#text'(id为textarea)是否为空。如果不是空的(即,文本中有一些文本),我想弹出确认,否则不想更改'#my_selection' 。
非常感谢提前。在确认消息之前进行验证

var selected=$('#my_selection').val(); 
$('#my_selection').change(function(){ 
    if($("#text").val() != ""){ 
     var check=confirm("change?"); 
     if(check){ 
     selected=$(this).val(); 
     $('#my_selection').val(selected); 
     }else{ 
     $(this).val(selected); 
     } 
    } 
}); 
+0

首先,你可以发表你的其他代码吗?其次,你能否澄清问题所在? – lonesomeday 2010-10-09 21:19:24

+1

这是什么问题? – BrunoLM 2010-10-09 21:19:52

+0

感谢您发布其他代码。但是,据我所知,您的代码有效。你怎么了? – lonesomeday 2010-10-09 21:39:49

回答

1

据我可以告诉你代码是好的。也许你只是缺少如果outter一个else:

var oldVal = $('#select').val(); 
$('#select').change(function(){ 
    if ($('#text').val() != ''){ 
     if(confirm('change ?')){ 
      oldVal=this.value; 
     } else { 
      this.value = oldVal; 
     } 
    } else { 
     this.value = oldVal; 
    } 
}); 

您可以测试运行的例子here

+0

丹,顺便说一句我注意到,如果#text为空,你的选项不会改变。 – DGT 2010-10-10 00:01:43

+0

@DGT:那是最后一个人做的。除此之外,其余的代码相当于你的... – 2010-10-10 00:19:20

+0

是的,但如果我去除了最后一个,它可以让你改变即使当#文本是空的,但是当确认弹出(即,当#文本不是空),然后单击'取消',它总是返回到第一个选项(即“One”)。你知道为什么吗? – DGT 2010-10-10 01:33:38