使用javascript阻止action属性运行php脚本

时间:2014-02-05 22:56:26

标签: javascript php html

有没有办法可以使用javascript来阻止表单运行php脚本。例如:

<form action="somePage.php" method="POST>

<input type= "text" class= "field"  name = "blah">

<input type="submit" value="Send" >

</form>

我知道如何使用javascript验证该文本框中的内容,但是如果文本框为空,我想阻止somePage.php运行。我没有真正尝试任何事情,因为我只是不知道该怎么做。

希望你们理解我的问题。

由于

4 个答案:

答案 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运行。

我个人将它们返回到同一页面,在页面上设置了一些错误。