大家好我正在处理联系人或电话簿应用程序。所以目前我正在寻找记录。现在我有这个表单,其中某些元素/字段是必需的或必需的,而其他元素/字段是可选
所以我写了一个非常简单的javascript函数来检查这些必填字段是否缺失。它对firefox和chrome有效,但不在IE中。
似乎if子句在我的IE中失败了,因为在我输入必填字段或者没有输入必填字段时,我收到警告消息,告诉我输入所需的字段。请注意,这不会发生在Firefox只有IE浏览器中。所以我会在这里放一些相关的代码,让你看看希望你可以帮助我:
头
一些css代码
...
<script type="text/javascript">
function disp_confirm()
{
if (document.contractor_phonebook_form.Service.value == "" || document.....etc.)
{
javascript:alert('Please enter all necessary fields!');
return false;
}
else
{
return true;
}
}
</script>
end of head beginning of body
<form action='<?php $PHP_SELF; ?>' method='post' name="contractor_phonebook_form" target="_self" onSbumit="return disp_confirm()">
使用mysql和php填充表单元素,从数据库查询中自动填充一些表单元素。而其他人则是简单的下拉菜单。
<select name="Service">
... etc..
希望你知道我在这里有什么,为什么IE总是给我提醒信息请填写必要的字段,我输入或不输入任何表格字段..
再次感谢你..
答案 0 :(得分:1)
好的我找到了问题的答案......大多数浏览器会自动检测选项字段的值,这意味着我原来的是:
<select name ="Service">
<option>NOCC</option>
<option>HVAC</option>
....etc.
</select>
但是IE总是得到空值,因为我没有明确指定元素标记的value属性。所以我所做的只是将我的代码从顶部更改为以下内容:
<select name="Service">
<option value="NOCC">NOCC</option>
<option value="HVAC">HVAC</option>
....etc..
</select>
现在在IE中工作正常。奇怪的是,大多数浏览器都能够通过查看选项标签显示来检测值属性,但IE要求您专门定义值属性,否则将其视为空白或null。这就是我的if子句在IE中失败的原因,因为我没有指定value属性,因此它总是空白,即使我从下拉菜单中选择了一个值,它仍然将其视为空白。
谢谢大家的帮助,我肯定会从你的帖子中学到新的东西,比如JQuery。
欢呼声
答案 1 :(得分:0)
您应该像普通函数一样调用alert
,而不先写javascript:
。
但是,您的问题是IE以不同方式实现value
元素的select
属性。
您需要检查“selected
属性中的任何选项是否为true
。
这是最容易使用jQuery,如下所示:
if ($('#service').val() === ""
|| $('#somethingElse').val() === "") {
alert("Please enter all necessary fields.");
return false;
} else
return true;
答案 2 :(得分:0)
有一个很好的jQuery cross browser solution并提供电子邮件地址,日期和其他常用功能的验证。您可以定义一个可以显示错误的公共div。
我在Asp.net上使用过它,并且很难根据我的需要调整它。这里有很多用户使用过这个解决方案。
答案 3 :(得分:0)
您无需在javascript:
功能之前加alert();
。