0

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

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

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

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

它有什么问题?当输入字段中有内容但未显示时,它应该向我显示表单。

4

2 回答 2

1

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

这是一个单行

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

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

解释:.toggle()可以接受一个布尔值。真 = 显示,假 = 隐藏。

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


如果您真的想检查输入字段的值,那么:

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

翻译成英文是:给我名字的值,修剪它,给我那个字符串的长度,然后把它传递给.toggle()

于 2013-04-26T09:46:03.087 回答
0

.val()当使用参数调用时,设置值并返回调用它的 jQuery 对象(以方便链接)。它不会像这样返回值,这与不带参数调用时不同。

这意味着你的 if 条件

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

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

于 2013-04-26T08:57:08.383 回答