Javascript 在提交时禁用表单输入/选择/etc,数据不会发送到iframe
如果表单的目标是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 {
<?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);
});