Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只能使用“提交”按钮提交表单_Javascript_Jquery_Html - Fatal编程技术网

Javascript 只能使用“提交”按钮提交表单

Javascript 只能使用“提交”按钮提交表单,javascript,jquery,html,Javascript,Jquery,Html,我有一张表格。我希望表单提交的唯一方法是使用提交按钮。我想确保ios上的enter按钮或go按钮未用于提交表单。将按钮类型用作按钮,并将其分配给onclick功能 <script type="text/javascript"> function submitform(){ $('#myform').submit(); } </script> <form id="myform" name=

我有一张表格。我希望表单提交的唯一方法是使用提交按钮。我想确保ios上的enter按钮或go按钮未用于提交表单。

将按钮类型用作按钮,并将其分配给onclick功能

    <script type="text/javascript">
        function submitform(){
            $('#myform').submit();
        }
    </script>
    <form id="myform" name="myform" action="somepage" method="POST">
        <button type="button" onclick="submitform();"></button>
    </form>

函数submitform(){
$('#myform')。提交();
}
HTML
不会在移动设备上使用enter键或“go”按钮触发自动提交

<form action="my-handler.php" method="POST" id="my_form">

    <label for="some_input">Input 1
    <input name="some_input" id="some_input" type="text">
    </label>

    <label for="another_input">Input 2
    <input name="another_input" id="another_input" type="text">
    </label>

    <input type="button" value="Submit Form" id="submit_button">

</form>

输入1
输入2
JavaScript

//如果按enter键,则停止提交表单
//或者在手机上按下“go”按钮
$(“#我的表格”)。提交(函数(e){
e、 预防默认值();
});
//单击按钮时提交表单
$(文档)。在('单击','提交'按钮',函数()上){
$(“#我的表格”).submit();
});
结论 您可能不应该过于关注在手机上使用enter或“go”来阻止表单提交,因为这会降低用户体验。我想你这样做是因为在填写完表格之前,有一些东西很容易触发提交。也许,在这种情况下,表单验证对您来说是一个更好的朋友,比如:

<script type="text/javascript">

    $( '#my_form' ).submit( function(e) {

        e.preventDefault(); // Don't let the form submit yet

        if( true == validateForm() ) {
            $( '#my_form' ).submit(); // Submit the form
        } else { 
            // Show error output
        }

    });

    // Validation function - returns true or false
    function validateForm() {
        // Do all your field validation and return
        return true;
    }

</script>

$(“#我的表格”)。提交(函数(e){
e、 preventDefault();//不要让表单提交
if(true==validateForm()){
$(“#我的表单”).submit();//提交表单
}否则{
//显示错误输出
}
});
//验证函数-返回true或false
函数validateForm(){
//完成所有字段验证并返回
返回true;
}

event.preventDefault()是您的朋友。请求如何发送并不重要。在服务器端,检查用于提交isset()的按钮的名称是否正确。这应该行得通。如果不是,则忽略帖子。@Zapp如果不是通过“提交”按钮提交表单,我需要停止提交表单。为什么要这样做?会导致更糟糕和不一致的用户体验。这肯定是一个好方法,但在这种情况下,按“enter”仍将提交表单。我认为它不会作为指定为按钮的类型属性,这将阻止默认提交方法
<script type="text/javascript">

    $( '#my_form' ).submit( function(e) {

        e.preventDefault(); // Don't let the form submit yet

        if( true == validateForm() ) {
            $( '#my_form' ).submit(); // Submit the form
        } else { 
            // Show error output
        }

    });

    // Validation function - returns true or false
    function validateForm() {
        // Do all your field validation and return
        return true;
    }

</script>