我的表格中有4个单选按钮:
<tr><td>Type</td><td>
<input type="radio" name="type" id="a" value="a" >A
<input type="radio" name="type" id="b" value="b" >B
<input type="radio" name="type" id="c" value="c" >C
<input type="radio" name="type" id="d" value="d" >D</td></tr>
在页面加载时,我使用jquery
设置了一个单选按钮$("#b").prop("checked", true);
现在我在表单中选择值d并提交。在PHP中我回显$ _POST [&#39; type&#39;],我总是得到使用jquery在页面加载期间设置的值,即在这种情况下b而不是d。
为什么值不更新?
感谢。
更新:谢谢大家,这是由于无线电按钮上无意识的val()调用。因此,如果使用val()设置单选按钮值,则以后不会更改奇怪的行为。
答案 0 :(得分:2)
在jQuery 1.6 +
中$('#b').prop('checked', true);
$('#b').prop('checked', false);
jQuery 1.5及以下
$('#b').attr('checked','checked');
$('#b').removeAttr('checked');
答案 1 :(得分:1)
而不是使用
$("#b").prop("checked", true);
为什么不把你的单选按钮写成
<input type="radio" name="type" id="a" value="a" >A
<input type="radio" name="type" id="b" value="b" checked="checked" >B
<input type="radio" name="type" id="c" value="c" >C
<input type="radio" name="type" id="d" value="d" >D
答案 2 :(得分:1)
像魅力一样工作; - ))。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js" /></script>
<script type="text/javascript">
$(document).ready(function() {
$('#b').attr('checked', 'checked');
});
</script>
</head>
<body>
<?php
if(isset($_POST['sbmt']) && isset($_POST['type'])) {
?>
<h1>Selected type: <?php echo($_POST['type']); ?></h1>
<?php
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<ul>
<li><input type="radio" name="type" id="a" value="a" /> A</li>
<li><input type="radio" name="type" id="b" value="b" /> B</li>
<li><input type="radio" name="type" id="c" value="c" /> C</li>
<li><input type="radio" name="type" id="d" value="d" /> D</li>
</ul>
<input name="sbmt" type="submit" value="Submit" />
</form>
</body>
</html>
答案 3 :(得分:0)
试试此代码
<?php
if(isset($_REQUEST['sb']))
{
echo $_REQUEST['type'];
}
?>
<html>
<body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(e) {
$('#b').attr('checked','checked');
});
</script>
<tr><td>Type</td><td>
<form name="frm" method="post" action="">
<input type="radio" name="type" id="a" value="a" >A
<input type="radio" name="type" id="b" value="b" >B
<input type="radio" name="type" id="c" value="c" >C
<input type="radio" name="type" id="d" value="d" >D</td></tr>
<input type="submit" name="sb" value="submit" />
</form>
</body>
</html>
答案 4 :(得分:-1)
尝试:
$("#b").attr("checked", true);
或
$("#b").attr("checked", "checked");