Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/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 在提交时禁用表单输入/选择/etc,数据不会发送到iframe_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript 在提交时禁用表单输入/选择/etc,数据不会发送到iframe

Javascript 在提交时禁用表单输入/选择/etc,数据不会发送到iframe,javascript,jquery,iframe,Javascript,Jquery,Iframe,如果表单的目标是iframe,如何在提交事件上禁用输入/选择/文件输入等 下面是我遇到的问题的一个“有效”例子 在这里你可以看到代码 <?php if (isset($_REQUEST['iframe'])) { if (isset($_POST['name_1'])) { echo 'POST PIENO<br />'; } else {

如果表单的目标是iframe,如何在提交事件上禁用输入/选择/文件输入等

下面是我遇到的问题的一个“有效”例子

在这里你可以看到代码

<?php
        if (isset($_REQUEST['iframe'])) {
                if (isset($_POST['name_1'])) {
                        echo 'POST PIENO<br />';
                } else {
                        echo 'POST VUOTO<br />';       
                }
                echo '<pre>'.print_r($_POST, true).'</pre>';
                die();
        }
?>
<html>
        <head>
                <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript" language="javascript"></script>
                <script>
                        function disableOnSubmit() {
                                $(this).attr('disabled', true);
                                $('#button2').attr('disabled', false);
                                $('#form').submit(function(e){
                                        $(this).find('input').attr('disabled', true);
                                });
                        }
                        function enableOnSubmit() {
                                $(this).attr('disabled', true);
                                $('#button1').attr('disabled', false);
                                $('#form').find('input').attr('disabled', false);
                                $('#form').unbind();
                        }
                        $(document).ready(function(){
                                $('#button1').click(disableOnSubmit);
                                $('#button2').click(enableOnSubmit);
                        });
                </script>
        </head>
        <body>
                <input type="button" id="button1" value="Disabled on Submit" />
                <input type="button" id="button2" disabled value="Enabled on Submit" />
                <form action="<?=$_SERVER['PHP_SELF']?>?iframe" method="post" id="form" target="iframe">
                        <input type="text" name="name_1" value="value_1" />
                        <input type="text" name="name_2" value="value_2" />
                        <input type="text" name="name_3" value="value_3" />
                        <input type="hidden" name="iframe" value="true" />
                        <input type="submit" value="submit" />
                </form>
                <iframe src="<?=$_SERVER['PHP_SELF']?>?iframe" name="iframe" />
        </body>
</html>

函数disableOnSubmit(){
$(this.attr('disabled',true);
$('#button2').attr('disabled',false);
$('表格')。提交(功能(e){
$(this).find('input').attr('disabled',true);
});
}
函数enableoSubmit(){
$(this.attr('disabled',true);
$('#button1').attr('disabled',false);
$('#form').find('input').attr('disabled',false);
$('#form').unbind();
}
$(文档).ready(函数(){
$(“#按钮1”)。单击(禁用提交);
$(“#按钮2”)。单击(启用提交);
});

如果根据HTTP规范禁用输入,则数据不会构成POST/GET请求的一部分。相反,您可能正在查找
readonly
属性——这将禁用输入并仍然发布数据

17.12禁用和只读控件:

在本例中,输入元素被禁用。因此,它不能接收用户输入,其值也不会随表单一起提交

但是,如果您试图停止多个提交,这将不会有帮助,因为您的表单提交请求在
load
事件触发时已经得到处理


如果以上是您的目标,我建议您在提交表单后禁用“提交”按钮(或者添加一个加载图标,向用户显示正在发生的事情等)。

问题不是“禁用”代表什么,而是在提交表单后如何禁用所有输入form@razorxan那么你的标题是误导性的,作为标题的一部分,您提到“数据未发送到iframe”,标题中说在提交时禁用表单输入/选择/etc(提交时读取),数据未发送到iframe PS:read(提交时读取)我想你的意思是:如何在提交数据后禁用表单输入/选择/等--你的标题当前显示的与你试图实现的相反。我提供的答案也是你问题的一部分,提交事件在提交表单之前触发,在该功能中,禁用按钮意味着一旦退出该功能,并且在提交时,这些输入被禁用,因此数据不会发送。
<INPUT disabled name="fred" value="stone">
$('iframe').on('load', function() {
    $(this.ownerDocument.body).find('input').attr('disabled', true);
});