我正在使用jQuery UI對話框輸入圖像的URL。我使用下面的方法:jQuery .val()方法只給我第一個輸入的值
<input id="dlg" value="Open Dialog" type="button" />
<script type="text/javascript">
var img = '<div id="dialog" title="Insert Image" style="width:500px;height:300px">';
img += '<table><tr><td style="width:100px">';
img += 'Image URL: </td><td><input id="txt" type="text" value="" size="52" /></td>';
img += '</tr></table></div>';
$('#dlg').click(function(){
$(img).dialog({buttons: {'Ok':function(){
var value = $("#txt").val();
var http = value.substr(0,7);
alert(value);
$(this).dialog('close');
}}},
{ closeOnEscape:true, resizable:false, width:600, height:200
});
});
</script>
當我按下按鈕(<input id="dlg" value="Open Dialog" type="button" />)
出現一個對話框,一個文本框輸入字段。當我在文本字段中輸入任何值時,它會提示該值。但是,當我按下第二次或第三次按鈕並在對話框的文本框中輸入其他值時,按確定,它會提醒我第一次輸入的值。所以,無論我點擊多少次按鈕並輸入任何值,它都會提醒我第一次輸入的值。
我是否正確使用此方法獲取文本框值var value = $("#txt").val();
? 如果是,那麼它爲什麼會給我第一次輸入的值。
注意:我清除了瀏覽器的緩存很多次,所以不會有任何緩存問題。
這是因爲您正在創建多個對話框,並且從不銷燬或刪除它們,所以您會在輸入時獲得重複的ID,並且始終獲得第一個ID。您需要正確清理onclose中的對話框,或者停止每次單擊按鈕時重新創建對話框。 –