【发布时间】:2012-03-16 12:27:09
【问题描述】:
谁能告诉我为什么这个 IF 语句不起作用?我正在使用 jQuery 和 Firebug,但后者没有给我任何有用的信息。
我只是试图在所有字段都完成后显示一个“提交”按钮,并且脚本每隔几秒钟运行一次以检查输入。
我的代码摘录有点像这样:
function checkForm(){
var userName = $('#name').val();
var userContent = $('#content').val();
var userEmail = $('#email').val();
// The following line shows me that the values for the fields are all getting picked up properly
$('#report').html("userName: "+userName+"<br />userContent: "+userContent+"<br />userEmail: "+userEmail);
// But the following line is throwing some kind of error
if (userName == "" || userContent == "" || userEmail == ""){
$('#update').slideDown();
} else {
$('#update').slideUp();
}
}
$(document).ready(function(){
$('#update').hide();
setInterval('checkForm()' , 2000);
});
还有我的 HTML...
<div id="report"></div>
<form id="submitfact">
<div id="update">Update Database</div>
<label><input id="name" name="name" type="text" value="" /><span>Fact submitter's name</span></label>
<label><input id="email" name="email" type="text" value="" /><span>Fact submitter e-mail address</span></label>
<label class="content"><span>Fact text</span><br /><textarea id="content" name="content"></textarea></label>
</form>
编辑...
如果人们认为我没有提供错误消息是在浪费时间,我深表歉意——但 Firebug 根本没有给我任何有用的东西——如果是的话,我会在这里发布。我是一个相当有经验的 php 程序员,但对 jQuery 相当陌生,所以我承认我仍然掌握编写语言和调试它的能力。我想发布 Firebug 响应的屏幕截图,但作为新用户,我不被允许......我得到的只是行号列中的“红色错误圆圈/黄色播放三角形”图标(“脚本" tab) 在我上面显示的那一行...除了“脚本”和“控制台”面板之外,没有别的东西可以告诉我在哪里看?
另一个编辑...
好吧,我通过查看 Cristoph 的建议解决了这个问题。它基本上是相同的解决方案,但我没有将其作为函数调用,而是将其“内联”。我不完全确定这两种技术之间的区别是什么,或者这是否只是我遇到的本地问题,但我的新 jQuery 看起来像这样:
$(document).ready(function(){
$('#submitfact').keyup(function(){
var userName = $('#name').val();
var userContent = $('#content').val();
var userEmail = $('#email').val();
$('#report').html(userName + "<br />" + userContent + "<br />" + userEmail);
if (userName == "" || userContent == "" || userEmail == ""){
$('#update').slideUp();
} else {
$('#update').slideDown();
}
});
});
我会看看你的其他 cmets,看看我是否可以简化它,但至少我现在有一个工作基线!谢谢大家的时间:)
【问题讨论】:
-
它们确实是空字符串,还是
null?此外,我会在修改输入时完成此检查,而不是在计时器上。 -
如果一行抛出错误,你不觉得发布错误是有益的吗?另外,Moo-Juice 是对的,你为什么要在计时器上这样做?!
-
“不起作用”不是问题描述。真是浪费大家的时间。
-
如果我知道它是什么,我会给你错误 - Firebug 只是挂在那条线上而没有详细说明这个问题......这就是我问你们的原因:) 我会编辑检查 keyup 而不是计时器的代码 - 感谢您的建议。
-
顺便说一句,Moo-Juice - 我如何检查它们是否为空而不是空字符串?
标签: javascript syntax if-statement