表单提交按钮不起作用

时间:2017-03-28 05:16:06

标签: javascript php html forms

我可以看到我的代码没有问题,但每当我按下submit按钮时,都没有任何反应:

<form id = "form_signin_containers" action = "" method = "post">
    <input type = "text" name = "si_idnumber" placeholder = "ID Number" required/>
    <input type = "password" name = "si_password" placeholder = "Password" required/>
    <input type = "submit" name = "si_submit" value = "    sign in    ">
</form>

我尝试在我的html代码上面的php代码中添加一个isset按钮来测试它:

if(isset($_POST['si_submit'])) {
  header("Location:home.php");
}

当我按下提交按钮时,它仍然无效。我也注意到,因为我在所有文本框上放了一个<...required/>,如果我点击提交按钮,它会通知我文本框是否为空?但是当我将文本框留空并按下提交按钮时,它仍然无法执行任何操作,它甚至不会告诉我文本框是空的。好像按钮已经死了。

更新
我有javascript我放在</body>之前,只要我点击一个锚点按钮,就会使页面顺畅滚动。
我的锚按钮示例:

<form id = "form_createaccount_button" action="#createchooserblink">
    <input type="submit" value="  create account  " />
</form> 

JS:

<script>
  $(function() {
     $('input').click(function(e) {
     e.preventDefault();
     var hash = $(this).parent('form').attr('action');
     var target = $(hash);
     target = target.length ? target : $('[name=' + hash.slice(1) +']');
     if (target.length) {
       $('html, body').animate({
         scrollTop: target.offset().top
       }, 1000);
     }

 });
 });
</script>

这会影响登录表单吗?

2 个答案:

答案 0 :(得分:5)

是的,您的JavaScript阻止了表单提交:

$('input').click(function(e) {
     e.preventDefault();
     // ...

单击“提交”按钮会触发该单击处理程序,并阻止默认操作阻止表单提交。

您可以通过添加name="si_submit"

专门保留:not([name=si_submit])按钮
$('input:not([name=si_submit])').click(function(e) {
     e.preventDefault();
     // ...

...但我认为不是这样做,我可能会在“锚点按钮”上使用类或其他东西(或根本不使用“锚点按钮”),而是添加该类。 E.g:

<form id = "form_createaccount_button" action="#createchooserblink">
    <input type="submit" class="anchor-button" value="  create account  " />
</form>

$('input.anchor-button').click(function(e) {
     e.preventDefault();
     // ...

答案 1 :(得分:-2)

试试这个:

<form id="form_signin_containers" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<input type="text" name="si_idnumber" placeholder="ID Number" required>
<input type="password" name="si_password" placeholder="Password" required>
<input type="submit" value="sign in">
</form>