我有代码form.html和entry.php
首先,我想使用javascript禁用带有选择框的文本字段,然后提交它以提供输出。
如果我没有使用此代码<form name="form1" method="post" action="entry.php">
form.html成功显示在Web浏览器中,但我如何通过一个提交按钮提交它?
form.html
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$('.group').hide();
$('#option1').show();
$('#chooseForm').change(function() {
$('.group').hide();
$('#'+$(this).val()).show();
})
});
</script>
</head>
<body>
<form name="form1" method="post" action="entry.php">
<select id="chooseForm" name="select">
<option value="option1">Form1</option>
<option value="option2">Form2</option>
<option value="option3">Form3</option>
</select>
<form id="option1" class="group">
<input name="a" value="form A"><br>
</form>
<form id="option2" class="group">
<input name="a" value="form A"><br>
<input name="b" value="form B"><br>
</form>
<form id="option3" class="group">
<input name="a" value="form A"><br>
<input name="b" value="form B"><br>
<input name="c" value="form C"><br>
</form>
<input value="Save" name="submit" type="submit"><br>
</form>
</body>
</html>
entry.php
<?php
$select = $_POST['select'];
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
echo $select;
echo "<br>";
echo $a;
echo "<br>";
echo $b;
echo "<br>";
echo $c;
?>
任何人都可以在没有嵌套表单的情况下解决此代码吗谢谢:))
答案 0 :(得分:0)
首先,you can't nest forms
据我所知,这个想法是将一些元素分组。如果是,请将内部<form>
标记替换为<div>
s。
另一个问题是您希望通过不同的部分使用相同的输入元素名称。基本上,如果name
不是唯一的,它将使用最后一个出现的值进行更新。例如:
<input type="text" name="a" value="val 1" />
<input type="text" name="a" value="val 2" />
发布上述内容后,$_POST['a']
将包含val 2
值。甚至,如果隐藏第二个文本框。因此,要么使文本框名称唯一,要么禁用隐藏的文本框名称。 disabled
属性将禁用用户输入控件,也不会出现在$_POST
数组中。所以,在这种情况下:
<input type="text" name="a" value="val 1" />
<input type="text" name="a" value="val 2" disabled />
$_POST['a']
将包含val 1
值,因为第二个文本框已被禁用
在您的情况下,每次隐藏一个部分时,您应该禁用该组中的所有控件。以下是如何操作:disable all form elements inside div。