2013-08-16 108 views
1

找了个解决这个但找不到的。jQuery输入值不起作用

$(document).ready(function() { 
    if ($("input").value()) { 
     $("h1").hide(); 
    } 
} 

因此,这似乎并不奏效($("h1").hide()只是一个占位符的动作......那部分并不重要,问题是,如果语句不工作)。

页面上有一种形式,<input type=text>。我希望在任何时候,如果输入框中有任何文本应用了某种状态。如果输入框返回为空,则状态将被删除。

$(document).ready函数中有很多其他函数,为了清晰起见,我忽略了这些函数......但if语句所在的范围直接在document.ready函数的内部。附:表单被动态地显示和隐藏,但是它是硬编码的 - 它不是动态创建的。

我有这个if语句的位置有什么问题?

+1

除了使用的替代值VAL()(),您将需要绑定到KEYUP或输入改变事件来检查时,该值被添加/删除 –

回答

7

尝试用.val()

$(document).ready(function(){ 
    if ($("input").val()) { 
     $("h1").hide(); 
    } 
}); 
更好

您使用nameidclass names选择。因为input可以是任何数量,他们还包括checkboxesradio buttonsbutton类型

+0

@ggg是否为你工作.. ?? – Gautam3164

1

在jQuery中,您必须使用.val()方法而不是.value()。您的支票应如下:

if ($("input").val()) { 
$("h1").hide(); 
} 
1

.value()无效。您应该使用.val()而不是.value()。希望它能使它工作?

1

不像.value()JS,它的.val()JQuery

$(document).ready(function() { 
    if ($("input").value()) { 
     $("h1").hide(); 
    } 
}); 

您应该使用keyup知道,当一个键被添加/删除从textbox

$(document).ready(function() { 
    $("#input_data").keyup(function() { 
     var dInput = $(this).val(); 
     alert(dInput); 

    }); 
}); 

DEMO

注意:由于输入可以是任何数量和复选框,单选按钮和按钮类型都包含在HTML input标记中,您应该使用nameidclass名称为**selectors**

input[type=text] 

,或者限制文本输入内部形成

form input[type=text] 

,或者进一步限制在一定的形式,假定它有ID myForm

#myForm input[type=text] 

如果你想要一个multiple attribute selector

$("input[type='checkbox'][name='ProductCode']") 
//assuming input type as checkbox and name of that input being ProductCode 
0

你应该在value位置使用val解决的办法是:

$(document).ready(function() { 
    if ($("input").val()) { 
     $("h1").hide(); 
    } 
});