我正在编写一个javascript对象,其中包含一个返回标准表单的html的方法.在这个对象中我还有一个方法validate(); 我希望生成的表单使用validate();
因此,具有验证的表单的典型html可能如下所示:
<form id="a" onSubmit="return validate();">
Run Code Online (Sandbox Code Playgroud)
问题是我需要能够引用对象实例,因此它需要更像 onSubmit="my_object.validate();">
我尝试了类似的东西,
return '<form id="a" onSubmit="return ' + this.validate + '();">';
但我的行为非常奇怪.
如果我使validate函数任意返回true表单被提交,false则不然.如果我在方法中进行任何其他计算,我会收到此错误:
> Error: syntax error Source Code:
> return id ==
Run Code Online (Sandbox Code Playgroud)
有没有人经历过这样的事情?
您可以输出HTML,获取对表单对象的引用,然后以编程方式附加事件处理程序,而不是在HTML属性中输出事件处理程序,如下所示:
<html>
<head>
<script type="text/javascript">
var my_object = {
outputForm: function(container) {
container.innerHTML =
'<form id="a"><input type="submit" value="Validate" /></form>';
this.createdForm = document.getElementById('a');
this.createdForm.onsubmit = this.validate;
},
validate: function() {
// use this.createdForm to get at the controls.
alert("Who dares awake my slumber?");
}
};
function createTheForm() {
my_object.outputForm(document.getElementById('container'));
}
</script>
</head>
<body onload="createTheForm()">
<div id="container"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |