即使其txt_approver
为空,也会提交以下表单。
但它在firefox / chrome中运行良好?
我没有错,可能是什么问题?
<script>
function validateForm() {
var x = document.forms["warningnotice"]["txt_approver"].value;
alert(x);
if (x == null || x == "") {
alert("Please enter a name to send a email to ");
return false;
}
}
</script>
<form method="post" action="travel.cfm" id="commentForm" name="warningnotice" onsubmit=" return validateForm()">
<td ><input type="text" name="txt_approver" class="get_empl" required data-error="#errNm35"></td>
<input type="submit" name="Submit" value="Submit" >
</form>
答案 0 :(得分:-3)
您正在使用name属性在JavaScript中找到表单和文本框。这不是name属性的用途。 id属性适用于此。
而不是:
document.forms["warningnotice"]
和
<input type="text" name="txt_approver" ...
这些行应该是:
document.forms["commentForm"]
和
<input type="text" name="txt_approver" id="txt_approver"...
而不是document.forms
,请使用:
var form = document.getElementById("commentForm");
var tb = document.getElementById("txt_approver");
此外,而不是:
if (x == null || x == "")
你可以使用:
if (!String.trim(x))
因为空文本框将产生空字符串“”和空字符串,转换为布尔值(if语句查找)将为false,但填充的字符串将转换为true。
最后,您可能根本不希望提交按钮具有名称属性,因为提交表单时,提交按钮的值将与其他表单元素一起提交,这可能不是什么你想要的。
以下JS Fiddle显示了在IE 11中为我工作的代码:https://jsfiddle.net/x0rbnL5s/