我正在从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();
}
它出了什么问题?当输入字段中有某些内容但它没有显示时,它应该显示给我。
答案 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")
本身。