如果输入字段有数据,则显示表单,否则不显示

时间:2013-04-26 08:39:11

标签: javascript jquery forms

我正在从facebook注册数据动态添加文本到输入字段,然后将这些数据填充到具有display:none属性的表单字段。获取所有数据后,表单应显示在display:block中。但这不起作用。代码似乎在控制台上工作,但不在浏览器上。

我正在检查输入字段是否已填写然后显示表单,否则为no。

这是jsfiddle。 http://jsfiddle.net/kqHmR/1/

if ($("#firstname").val() == $("#firstname").val(dataCollection.first_name)) {
    $("#profileEdit").hide();
} else {
    $("#profileEdit").show();
}

它出了什么问题?当输入字段中有某些内容但它没有显示时,它应该显示给我。

2 个答案:

答案 0 :(得分:1)

你能不能检查dataCollection.first_name是否为空?

这是一个单行

$("#profileEdit").toggle(dataCollection.first_name.length);

参考:http://api.jquery.com/toggle/

说明:.toggle()可以接受布尔值。 true = show,false = hide。

如果字符串的.length为零,则计算结果为false,从而将false传递给.toggle()。反之亦然。


如果确实想要检查输入字段的值,那么:

$("#profileEdit").toggle( $.trim( $("#firstname").val() ).length );

用英语翻译:获取名字的值,修剪它,并给我该字符串的长度,然后将其传递给.toggle()

答案 1 :(得分:0)

.val()使用参数调用时,设置值,返回调用它的jQuery对象(以便于链接)。 不会返回值,与不带参数的情况不同。

这意味着你的条件

if ($("#firstname").val() == $("#firstname").val(dataCollection.first_name)) {

总是会失败,因为RHS 不是新设置的值,而是jQuery对象$("#firstname")本身。