Почему мое условие не возвращается ложно? - PullRequest
1 голос
/ 27 декабря 2010

Задав пару вопросов, мне удалось создать эту форму.У меня не было проблем с тем, чтобы он возвращал false, если переданное значение было 0, но я не могу заставить его возвращать false, если это строка «Cambia de ciudad».это форма:

<form role="search" method="get" action="http://chusmix.com/" onsubmit="if (document.getElementById('s')== 'Cambiá de ciudad") return false;'>

<input class="ubicacion" name="s" id="s" tabindex="1" onsubmit="if ((document.getElementById('s').value.length < 4) || (document.getElementById('s')== 'Cambiá de ciudad')) return false;" onfocus="if (this.value=='Cambiá de ciudad') this.value = ''" onblur="if(this.value == '') this.value = 'Cambiá de ciudad'" type="text" maxlength="80" size="28" value="Cambiá de ciudad">

<input type="submit" id="searchsubmit" value="Buscar" />
</form>

Как мне заставить это работать? Спасибо

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

Во-первых, потому что ваши кавычки запутаны.

Вы открываете значение атрибута с помощью " и открываете строку, с которой сравнивает элемент, с '.Затем вы пытаетесь закрыть эту строку с помощью ", а значение атрибута - с помощью '.

Во-вторых, поскольку вы пытаетесь сравнить элемент со строкой, когдавы хотите сравнить его значение .

Частично исправленный код будет выглядеть следующим образом:

onsubmit="if (document.getElementById('s').value == 'Cambiá de ciudad') return false;">

Для правильного исправления будет использоваться ненавязчивый JavaScript .

В качестве дополнительной проблемы:

<input … onsubmit="…

… это нонсенс.Только <form> элементы имеют onsubmit атрибуты.

1 голос
/ 27 декабря 2010

Я не уверен, что это веб-префиксатор или нет, но ваш код выглядит так, как будто он не использует одинарные и двойные кавычки.Также вам нужно сравнивать не по элементам, а по тексту.Попробуйте это:

onsubmit="if (document.getElementById('s').value == 'Cambiá de ciudad') return false;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...