2014-03-27 58 views
0

我有一個html對話框窗口,帶有一個簡單的輸入字段和兩個按鈕(確定並取消)。無法獲取html輸入字段的值

用戶將被提示在輸入字段中輸入文本,然後選擇確定,然後我想要輸入(類型文本)字段的內容並使用它。但是,我似乎無法獲得輸入字段的內容。

這裏是我的代碼有:

的Html對話內容:

<div id="DescriptionDialog" title="Update Settings" style="display: none;"> 
    <p>Please enter the reason for this update: </p> 
    <input id="StateDescription" name="StateDescription" class="longer" type="text" placeholder="enter description of change"/> 
</div> 

JavaScript函數 - 該功能通過主頁上的其他按鈕觸發 - 打開對話框:

function DialogFunction() { 

    $('#DescriptionDialog').show(); 

    $('#DescriptionDialog').dialog({ 
     open: function() { $('.ui-dialog :button').blur(); }, 
     width: 500, 
     modal: true, 
     resizable: false, 
     buttons: { 
      "OK": function() { 
       alert('OK'); 

       var description = $('#StateDescription').val(); 

       alert(description); 

       //This is where i will make an ajax call to use the description entered. 

       $('#StateDescription').val(""); 
       $('#DescriptionDialog').hide(); 
       $(this).dialog('close'); 

      }, 
      "Cancel": function() {// get rid of the dialog and reset the form 
       $(this).dialog('close'); 
       $('#StateDescription').val(""); 
       $('#DescriptionDialog').hide(); 
      } 
     } 
    }); 
} 

由於某些原因,當我選擇確定時,顯示「OK」的警報出現,那麼無論我在輸入字段中輸入了什麼內容,警報的描述總是空白或如果我在HTML中設置了一個值,那就是這樣。

任何想法?

+3

作品我在這裏:http://jsfiddle.net/NicoO/WSVF8/ –

回答

1

你確定你沒有輸入ID「StateDescription」嗎?因爲你的代碼是相當不錯的,當我嘗試在「OK」警報之後的jsfiddle運行這個我可以看到值輸入:

看這裏:http://jsfiddle.net/paqrL/

這是正常的傢伙!

  var description = $('#StateDescription').val(); 
      alert(description); 
+0

我已經意識到它,因爲頁面是一個恆定的刷新,因爲它顯示實時數據,所以該對話框的價值每3秒刷新一次,所以我失去了輸入到對話框中的內容。 感謝您的幫助,向我展示了代碼的工作原理是什麼讓我認爲這是外在的東西! – LolBB

+0

我的第一個觀點是:P,非常感謝! – Pirata21