输入类型提交与输入类型按钮

时间:2013-09-08 06:12:58

标签: php javascript html

我一直试图用PHP来解决烦人的行为(我想......)。也许你们中的一些人遇到过同样的想法并且有一些想法。我有一个html表单,我使用一个元素与onClick事件调用一个javascript函数。一旦处理了脚本的内容,我就执行form.submit()指令。它基本上检查常见的事情,如字段长度等。

现在我的问题是,当我使用输入类型按钮时,我将其名称设置为submit1,只是为了运行一个小测试,我设置了<form id="register" action="<?php echo($PHP_SELF) ?>" method="post">

然后我说:

        <?php

if (isset($_POST["submit1"])) {
    echo "Submit button was pressed";
    die();

}

?>

但是,即使输入按钮的名称是submit1,我也从未看到过该消息。然后我将输入类型更改为提交,然后单击“提交”,我将看到该消息,但唯一的问题是,即使我的javascript函数在表单中发现任何错误,在警告框中单击“确定”后,表单仍会继续。它只在提交type = submit时执行此操作。

如果有人有兴趣,

我的按钮: 第一次尝试:

<input type="button" name="submit1" class="submit" value="Register"      
onclick="validateFields()"  />

第二次尝试:

<input type="submit" name="submit1" class="submit" value="Create Account!"     
onclick="validateFields()"  />

3 个答案:

答案 0 :(得分:1)

要提交表单,输入字段的类型必须为submit,而不是button

<input type="submit" name="submit1" class="submit" value="Create Account!"     
onclick="validateFields()"  />

你也可以这样做:

<button type="submit" name="submit1" class="submit" onclick="validateFields()">
Create Account! </button>

并且,为了避免在有错误的情况下提交表单,您可以返回false:

function validateFields() {
    //do validation
    if(failed) {
        return false;
    }
}

答案 1 :(得分:1)

对于java script问题,您可能没有提出return false这就是为什么表单以任何方式提交。

if(a.value == ""){
alert("Name is empty");
return false; // this will prevent your form to be submit if condition fails
}

buttonsubmit之间的区别在于submit正在提交表单(posting form),因此PHP有资格通过$_POST button 1}}但在Ajax情况下,表单未提交,因此您无法在其他页面上获取值,而不是使用{{1}}。

Similar Question here

答案 2 :(得分:0)

谢谢大家,我修好了:)。

我将输入类型更改为按钮,并更改了我的onclick =“function();返回false”

在我最初的JS代码中,我添加了:document.getElementById('myFormId')。submit();

现在我的JS代码运行,并且在修复所有错误之前它不会提交它。谢谢。愚蠢的错误对我而言。