0

我有这个表格

<form class="form" method="post">
<input type="text" id="input_what" holder="what" />
<input type="text" id="input_where" holder="where" />
<input type="submit" value="submit" />
</form>

这个脚本可以防止提交表单

$('.form').submit(function(e) {
var what = $('#input_what').val();
var where = $('#input_where').val()
if ( what == "what" || what ==""  &&  where == "where" || where == "") {
   e.preventDefault();
   console.log('prevented empty search');
   return false;
}     
});

我知道我的情况不起作用,但我需要它像这样工作

 IF (what == "what" OR what == "") AND (where == "where" OR where == "")

看看这个小提琴,了解为什么 http://jsfiddle.net/pK35e/

我正在使用的占位符脚本,需要我不提交上述情况的表格,这placeholder="attribute"对我来说没有解决方案,所以谁能给我一个提示如何设置这个 if 条件?

4

5 回答 5

4

就像在您所做的文字描述中一样使用括号:

if (( what == "what" || what =="")  &&  (where == "where" || where == "")) {

旁注:您可能会对将来的版本感兴趣,因为 IE9-不支持它,占位符属性将使这更简单。

于 2013-03-05T17:40:19.110 回答
2

尝试这个

if ( (what == "what" || what =="")  &&  (where == "where" || where == ""))
于 2013-03-05T17:40:17.117 回答
2
IF ((what == "what" ||what == "") &&(where == "where" ||where == ""))
于 2013-03-05T17:41:01.940 回答
2

我相信你需要一些括号才能得到你想要的:

if ( (what == "what" || what =="")  &&  (where == "where" || where == ""))

这意味着两者

(what == "what" || what =="") 

(where == "where" || where == "") 

必须返回 true 才能执行 if 语句中的代码。这实际上与您的文本示例非常接近。

--

只是为了了解这一切。您的旧代码看起来像这样带括号:

if ( (what == "what") || (what ==""  &&  where == "where") || (where == "")) {

再一次,其中只有一个必须返回 true。

于 2013-03-05T17:42:07.983 回答
2

使用括号。运算符的&&优先级高于||运算符。

if ((what == "what" || what =="") && (where == "where" || where == ""))

http://en.m.wikipedia.org/wiki/Order_of_operations

于 2013-03-05T17:42:37.327 回答