如果没有选中复选框,则表单操作应为'not_checked.php'如果未选中其中一个,则可以更改操作,但不能同时更改两者。这是语法错误吗? HTML:
<form id="emf-form" target="_self" enctype="multipart/form-data" method="post" action="test3.php" name="emf-form">
<input type="checkbox" class="ahh" checked id="chg_db_url">
...
<input type="checkbox" class="ahh" id="chgact">
Jquery的:
<script>
if(!$('#chgact').is(':checked') && !$('#chg_db_url').is(':checked')) {
$('#emf-form').attr('action', 'not_checked.php');
};
</script>
答案 0 :(得分:1)
看起来你想在两个复选框上使用onchange事件:
$('#chgact,#chg_db_url').on('change', function () {
if (!$('#chgact, #chg_db_url').is(':checked')) {
$('#emf-form').attr('action', 'not_checked.php');
} else $('#emf-form').attr('action', 'test3.php');
}).triggerHandler('change'); //maybe you would like to trigger the event too
答案 1 :(得分:1)
根据我的理解,您想要检查一次,而不是每次更改。在这种情况下,请确保DOM已准备就绪。有几种方法可以做到这一点。将代码放在页面末尾是最简单的。
<form id="myform">
<p>
<input type="checkbox" id="cb1" name="checkbox1" />My first checkbox
</p>
<p>
<input type="checkbox" id="cb2" name="checkbox2" />My second checkbox
</p>
</form>
使用Javascript:
$(function () { // DOM is ready for sure
if (!$('#cb1').is(':checked') && !$('#cb2').is(':checked')) {
$('form').attr('action', 'not_checked.php');
}
});
但是,如果您想在每次复选更改时更改它,请尝试以下代码:
$(function () { // DOM is ready for sure
$('#myform').on('change', 'input:checkbox', function () {
if (!$('#cb1').is(':checked') && !$('#cb2').is(':checked')) {
$('#myform').attr('action', 'not_checked.php');
} else {
$(this).attr('action', 'checked.php');
}
});
});
这会将action
属性分别设置为'checked.php'和'not_checked.php'。
以下是一个实时示例,其中显示了表单的操作:http://jsfiddle.net/3znpG/1/
另外,我建议使用一个提交页面并检查它们是否已使用PHP进行检查。这更安全。
答案 2 :(得分:1)
你可以尝试:
$('#chgact, #chg_db_url').change(function(){
if(!$('#chgact, #chg_db_url').is(':checked')) {
$('#emf-form').attr('action', 'not_checked.php');
} else {
$('#emf-form').attr('action', 'test3.php');
}
});
无需单独检查这两个条件,您可以执行此操作$('#chgact, #chg_db_url').is(':checked')
如果选中其中任何一个,它将评估为true
,如果两者都不是,则评估为{...} < / p>
答案 3 :(得分:1)
另外还有一个答案,abt .filter()
怎么样?
$('#chgact,#chg_db_url').on('change', function () {
var len = $('#chgact,#chg_db_url').filter(":checked").length; //will get the length of the
if (len === 0) {
alert("not checked");
} else {
alert("checked");
}
});
或,not()
?
$('#chgact,#chg_db_url').on('change', function () {
var len = $('#chgact,#chg_db_url').not(":checked").length; //will get the length of the
if (len === 0) {
alert("checked");
} else {
alert("not checked");
}
});
Mightve混合了if和else循环,但是你得到了要点。