2017-08-25 62 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); 

});