在问了几个问题后,我设法创建了这个表单。如果提交的值为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>
如何让它发挥作用?感谢
答案 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;"