2010-10-09 30 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