为什么我的条件提交不返回false?

时间:2010-12-27 20:47:04

标签: javascript html webforms

在问了几个问题后,我设法创建了这个表单。如果提交的值为0,我没有麻烦使它返回false但是当它是字符串'Cambia de ciudad'时我不能使它返回false。我确定我正在弄乱引号或类似的东西。这形式如下:

<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 个答案:

答案 0 :(得分:2)

首先,因为你的引号标记混乱了。

使用"打开属性值,然后打开要将元素与'进行比较的字符串。然后,您继续尝试使用"关闭该字符串,并使用'关闭属性值。

其次,因为您试图将元素与字符串进行比较,所以当您想要比较它的时。

部分修复的代码如下所示:

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

要正确修复,它会使用unobtrusive JavaScript

另外一个问题:

<input … onsubmit="…

...是胡说八道。只有<form>个元素具有onsubmit个属性。

答案 1 :(得分:1)

我不确定它是否是网络美化,但你的代码看起来不是正确使用单引号和双引号。此外,您不需要按元素进行比较,而是按文本进行比较。试试这个:

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