有没有办法可以使用javascript来阻止表单运行php脚本。例如:
<form action="somePage.php" method="POST>
<input type= "text" class= "field" name = "blah">
<input type="submit" value="Send" >
</form>
我知道如何使用javascript验证该文本框中的内容,但是如果文本框为空,我想阻止somePage.php运行。我没有真正尝试任何事情,因为我只是不知道该怎么做。
希望你们理解我的问题。
由于
答案 0 :(得分:2)
您可以将功能附加到submit
的{{1}}事件:
form
<强> OR 强>
以下解决方案使用内联js:
如果要在将表单提交到php脚本之前运行js函数,可以使用表单的document.getElementById('form-id').addEventListener("submit", function(e){
var field1 = getElementById('field1').value;
if(field1=='' || field1 == null){
e.preventDefault();
alert('Pls fill the required fields.');
return;
}
return true;
});
属性,
onsubmit
在<form id="form-id" action="somePage.php" method="POST" onsubmit="return formSubmit();">
<input type= "text" class= "field" id="field1" name = "blah">
<input type="submit" value="Send" >
</form>
函数中,您可以检查输入的值,如果它是空的,如果是空的,那么您可以formSubmit
return false;
答案 1 :(得分:1)
您只需要return false
获取提交事件,方法是抓取表单(我使用querySelector
因为您没有ID或类),并添加提交侦听事件以返回false。
var x = document.querySelector("[method='POST']");
x.addEventListener("submit",function() {
return false;
});
答案 2 :(得分:1)
使用此代码阻止表单提交:
var first_form = document.getElementsByTagName('form')[0];
first_form.addEventListener('submit', function (e) {
e.preventDefault(); //This actually prevent browser default behaviour
alert('Don\'t submit');
//Do your stuff here
}, false);
更好地阅读docs
答案 3 :(得分:-2)
你可以在你的somePage.php中将这个作为一个新的开头的条款:
if(empty($_POST['blah'])){
die();
}
或
的反转if(!empty($_POST['blah'])){
//do what this php is supposed to
}
else{
//display error
}
如果没有填写该字段,这将阻止您的php运行。
我个人将它们返回到同一页面,在页面上设置了一些错误。