<form action="1.html">
<input type="radio" id="check1" name="check" />
<input type="radio" id="check2" name="check" />
</form>
我想要实现的是:
选中“check2”时,将“action”值更改为“2.html”
选中“check1”时,将“action”值更改回“1.html”
答案 0 :(得分:4)
这应该解决你的问题。
$(function(){
$('#check1').click(function() {
$(this).parent().attr('action', '1.html');
});
$('#check2').click(function() {
$(this).parent().attr('action', '2.html');
});
});
答案 1 :(得分:3)
虽然上面的答案是正确的,但你需要小心这样做。
例如,假设您单击check2。它改变了行动。您提交表单,或转到另一页。现在你点击后退按钮。
浏览器重新加载页面*,将表单的操作重置为HTML中给出的值。但!浏览器会记住表单字段中设置的先前值,因此仍然会选中check2而不会发生单击事件:无线电的状态与表单操作的状态不匹配。
为了避免这样的问题,您应该始终在页面加载时扫描表单值并更新依赖于它们的任何内容。
通常,您应该尝试执行单个操作,接收服务器端脚本决定要执行的操作,而不是动态更改操作。这可以避免上述错误,并在非JS UA上停止表单。
*:如果页面仍然在加载的页面DOM缓存中,它可能无法重新加载页面。
答案 2 :(得分:0)
以下内容应该有效:
$("#check1").click
(
function()
{
$("form").attr("action", "1.html");
}
);
$("#check2").click
(
function()
{
$("form").attr("action", "2.html");
}
);
答案 3 :(得分:0)
$('[name="abc"][value="abc"]').click(function () {
$(".test").attr("action", "http://localhost/test.php");
});
$('[name="def"][value="def"]').click(function () {
$(".test").attr("action", "http://localhost/test1.php");
});
<form name="form" class="test" action="http://localhost/test.php">
<input type="radio" name="abc" value="abc" />
<input type="radio" name="def" value="def" />
</form>