2017-08-25 58 views
-1

我想使用whenthen方法jQuery檢查值,但它似乎沒有按預期方式工作。該腳本適用於if參數,但不適用於when。

$.when($(".myClass").val() !== undefined).then(function(){ 
    console.log("$(".myClass").val())); 
}); 

總是返回undefined。它不會等待元素有一個值。然而,這與if參數一起工作。

任何想法上面的代碼有什麼問題,以及如何解決它?

+0

'$ .when' is asynchronous –

回答

2

它不等待元素有一個值。

這不是$.when所做的。

但是,這適用於if參數。

if不會等待它有一個值。

任何想法上面的代碼有什麼問題,以及如何解決它?

在元素上註冊一個處理程序,以處理要用來觸發值檢查的任何事件。常用的選項是changeinput,但它取決於它是什麼樣的控制。因此,舉例來說,以大鉤changeinput

$(".myClass").on("change input", function() { 
    console.log($(this).val()); 
}); 
+0

謝謝,但這不適用於我的用例。該功能應該在頁面刷新後在屏幕上出現時立即開始(值在該時刻改變)。加載事件僅適用於緩存爲空的情況。 – Andi

+0

@Andi:然後你應該發佈一個新的問題來顯示你的用例(詳細地說;最好用一個[mcve]使用Stack Snippets [[<]]按鈕使其運行)。人們會很樂意幫助(包括我自己在內)。 *這個*問題不包含任何關於出現的元素等; *問*已被回答。 –

0

我做的,當我來到這些情況是,我讀了函數的文檔我試圖在你的情況下使用here

你正在嘗試類似於:

$(".btn").on("click", function() { 
    var value = $(".myClass").val(); 
    if(value != "") 
     console.log(value); 

}); 
相關問題