表格正在IE11中提交

时间:2016-03-05 01:10:16

标签: javascript internet-explorer internet-explorer-11

即使其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>

1 个答案:

答案 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/