我收到未捕获的类型错误:Chrome 中的非法调用或 SCRIPT65535:提交表单时 IE 中的调用对象无效。
以下标记重现错误:
<!DOCTYPE html>
<html>
<body>
<p>Enter some text in the fields below, then press the "Submit form" button to submit the form.</p>
<form id="myForm" action="form_action.asp">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<input type="button" onclick="myFunction()" value="Submit form">
</form>
<script>
function myFunction()
{
var submit2 = myForm.submit;
submit2();
}
</script>
</body>
</html>
但是当换行时:
var submit2 = myForm.submit;
submit2();
直接提交表单 myForm.submit() 然后所有工作都没有错误。
所以如何解决问题对我来说很清楚,对我来说有趣的是为什么“间接”表单提交会导致错误
最佳答案
用 myForm.submit()
调用提交方法时知道上下文是 myForm,但是当我们用 submit2()
调用它时,有不是上下文(全局上下文),所以它给出错误。
要修复错误,您必须通过将此内容设置为 myForm 来调用 submit2()
方法。
示例代码是
var submit2 = myForm.submit;
submit2.call(myForm);
您可以使用调用或申请更改上下文。
关于电话和申请的更多信息:
关于javascript - 未捕获的类型错误 : Illegal invocation in Chrome or SCRIPT65535: Invalid calling object in IE when submit form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845913/