我有一个URL的提交表单,我希望它具有到目前为止我无法实现的特定行为。最初我想要启用按钮。有人输入URL并点击“提交”按钮后,我想调用我的checkURL()函数。如果函数返回true,我希望按钮被禁用,然后我想打开remote_file.php。如果它返回false,我希望启用该按钮并让他们尝试另一个URL。
<form name=URLSubmitForm
action="remote_file.php"
method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="524288000">
<input type="text" name="name" size="50">
<input type="submit"
onchange="this.disabled=false"
onclick="this.disabled=true; checkURL();"
value="submit">
</form>
编辑:看起来我只是把onchange放在错误的地方。我最终这样做是为了修复重新启用按钮
<input type="text" onchange="submit.disabled=false" name="name" size="50">
谢谢!
答案 0 :(得分:1)
我建议您将事件处理代码附加到表单的 onsubmit 事件,而不是按钮事件。您要控制的是表单是否已过帐。验证逻辑运行时禁用的按钮是次要目标。
请改为尝试:
<script type="text/javascript">
function checkURL(){
var submitButton = document.getElementById('submitButton');
submitButton.disabled=true;
/* implement your validation logic here
if( url is invalid ){
submitButton.disabled=false;
return false;
}
*/
// everything is valid, allow form to submit
return true;
}
</script>
<form name="URLSubmitForm" action="remote_file.php" onsubmit="return checkURL();" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="524288000">
<input type="text" name="name" size="50">
<input type="submit" name="submitButton" id="submitButton" value="submit">
</form>
答案 1 :(得分:1)
<input type="submit"
onclick="if (checkURL()) { this.disabled='disabled'; return true; } else { return false; }"
value="submit">
答案 2 :(得分:0)
在表单的onsubmit事件中如何:
<form onsubmit="(function(){
if(checkURL()){
this.elements['submit'].disabled = 'disabled';
}
else{
return false;
}
})()">
由于您没有提供任何ajax代码,表单仍会正常提交,当重新加载页面时,该按钮将再次启用。
答案 3 :(得分:0)
的onclick = “checkURL(本);”
function checkURL(arg){
this.disabled=true;
if(<something>) this.disabled=false;
}