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/

the placeholder-script i'm using, мне не нужно отправлять форму для случаев выше , используя placeholder="attribute", для меня нет решения, так может ли кто-нибудь дать мне подсказку, как установить это условие if?

+1

Я не понимаю, почему вы не используете скобки в вашем коде. – entonio

+0

Если вы были испорчены стилем кодирования VB. :) – codingbiz

ответ

2

Попробуйте

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

Большое спасибо вам –

4

Использует скобку так же, как в описании текстового вы сделали:

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

Side Замечание: Вы можете быть заинтересованы, для будущих версий, как это не поддерживается IE9-, по placeholder attribute, что сделает это проще.

+0

Вау, это были самые правильные ответы за 30 секунд, которые я когда-либо реализовал, добавив к SO.спасибо, что я не знал, что работает так просто –

+1

Да, я ненавижу атрибут placeholder, потому что мне не нравится, что текст не скрыт в фокусе и что каждый браузер имеет свой собственный способ его рендеринга, поэтому я сделал это сценарий с небольшим заполнителем, который имеет мой желаемый внешний вид даже в IE 6: D ... спасибо в любом случае вашей информационной ссылке тоже –

+0

Почему бы вам не использовать полиграф заполнителя? Их так много, я не могу себе представить, почему кто-то будет катиться самостоятельно. Я обычно использую этот: https://github.com/ginader/HTML5-placeholder-polyfill – Steve

2
IF ((what == "what" ||what == "") &&(where == "where" ||where == "")) 
+0

Большое спасибо вам тоже –

2

Я считаю, что вам нужны круглые скобки для того, чтобы получить то, что вы хотите:

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

Это означает, что оба

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

и

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

должен вернуться true для того, чтобы код в вашем случае если t для выполнения. Это довольно близко к вашему текстовому примеру.

-

Просто для понимания всего этого. Ваш старый код будет выглядеть так с круглыми скобками:

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

Где снова, только один из них должен был бы вернуть истину.

+1

спасибо tooo –

Смежные вопросы