Javascript 复选框-比较所选内容中的值
在选中Javascript 复选框-比较所选内容中的值,javascript,jquery,Javascript,Jquery,在选中复选框后,如何比较值并显示输出?我正在使用jQuery来做这件事。选择完成后,它将不显示输出。它只会在第一次单击时显示。然后,如果我们再次单击,输出将不会更改。下面是我目前编写的代码 jQuery $("input:checkbox").on('click', function() { var $box = $(this), $price = $( "input[name='price_range']:checked").val(), $na
复选框后,如何比较值并显示输出?我正在使用jQuery来做这件事。选择完成后,它将不显示输出。它只会在第一次单击时显示。然后,如果我们再次单击,输出将不会更改。下面是我目前编写的代码
jQuery
$("input:checkbox").on('click', function() {
var $box = $(this),
$price = $( "input[name='price_range']:checked").val(),
$nama_pemohon = "<?php echo $nama_pemohon; ?>",
$submited_id = <?php echo $submited_id; ?>,
$jawatan_pemohon = "<?php echo $jawatan_pemohon; ?>",
$jabatan_pemohon = "<?php echo $jabatan_pemohon; ?>",
$submited_by = <?php echo $submited_by; ?>,
$nama = "<?php echo $nama; ?>",
$jawatan = "<?php echo $jawatan; ?>",
$jabatan = "<?php echo $jabatan; ?>";
if($price == "< RM 10,000"){
$("#submited_by option").val($submited_by).text($nama);
$("#jawatan_pemohon").text($jawatan);
$("#jabatan_pemohon").text($jabatan);
} else {
$("#submited_by option").val($submited_id).text($nama_pemohon);
$("#jawatan_pemohon").text($jawatan_pemohon);
$("#jabatan_pemohon").text($jabatan_pemohon);
}
});
$(“输入:复选框”)。在('click',function()上{
var$box=$(此),
$price=$(“输入[name='price\u range']:选中”).val(),
$nama_pemohon=“”,
$submited_id=,
$jawatan_pemohon=“”,
$jabatan_pemohon=“”,
$submited_by=,
$nama=“”,
$jawatan=“”,
$jabatan=“”;
如果($price==“<10000 RM”){
$(“#按选项提交”).val($submited_by).text($nama);
$(“jawatan_pemohon”)。文本($jawatan);
$(“#jabatan_pemohon”).text($jabatan);
}否则{
$(“提交选项”).val($submited_id).text($nama_pemohon);
$(“jawatan_pemohon”).text($jawatan_pemohon);
$(“jabatan_pemohon”).text($jabatan_pemohon);
}
});
HTML
<input type="checkbox" name="price_range" value="< RM 10,000" class="checker"> < RM 10,000.00
<input type="checkbox" name="price_range" value="< RM 200,000" class="checker"> < RM 200,000.00
<select name="submited_by" id="submited_by">
<option value="<?php echo $submited_by; ?>"><?php echo $nama;?></option>
</select>
我认为应该在jQuery函数之外创建一个“全局”变量
var clicked = false;
$("input:checkbox").on('click', function() {
if(!clicked) {
var $box = $(this),
$price = $( "input[name='price_range']:checked").val(),
$nama_pemohon = "<?php echo $nama_pemohon; ?>",
$submited_id = <?php echo $submited_id; ?>,
$jawatan_pemohon = "<?php echo $jawatan_pemohon; ?>",
$jabatan_pemohon = "<?php echo $jabatan_pemohon; ?>",
$submited_by = <?php echo $submited_by; ?>,
$nama = "<?php echo $nama; ?>",
$jawatan = "<?php echo $jawatan; ?>",
$jabatan = "<?php echo $jabatan; ?>";
if($price == "< RM 10,000"){
$("#submited_by option").val($submited_by).text($nama);
$("#jawatan_pemohon").text($jawatan);
$("#jabatan_pemohon").text($jabatan);
} else {
$("#submited_by option").val($submited_id).text($nama_pemohon);
$("#jawatan_pemohon").text($jawatan_pemohon);
$("#jabatan_pemohon").text($jabatan_pemohon);
}
clicked = true;
}
});
var=false;
$(“输入:复选框”)。在('click',function()上{
如果(!单击){
var$box=$(此),
$price=$(“输入[name='price\u range']:选中”).val(),
$nama_pemohon=“”,
$submited_id=,
$jawatan_pemohon=“”,
$jabatan_pemohon=“”,
$submited_by=,
$nama=“”,
$jawatan=“”,
$jabatan=“”;
如果($price==“<10000 RM”){
$(“#按选项提交”).val($submited_by).text($nama);
$(“jawatan_pemohon”)。文本($jawatan);
$(“#jabatan_pemohon”).text($jabatan);
}否则{
$(“提交选项”).val($submited_id).text($nama_pemohon);
$(“jawatan_pemohon”).text($jawatan_pemohon);
$(“jabatan_pemohon”).text($jabatan_pemohon);
}
单击=真;
}
});
如中所示,每次单击第一个复选框都会得到更改,但第二个复选框只会第一次更改
这是因为您的逻辑:
if($price == "< RM 10,000"){
$("#submited_by option").val($submited_by).text($nama);
$("#jawatan_pemohon").text($jawatan);
$("#jabatan_pemohon").text($jabatan);
} else {
$("#submited_by option").val($submited_id).text($nama_pemohon);
$("#jawatan_pemohon").text($jawatan_pemohon);
$("#jabatan_pemohon").text($jabatan_pemohon);
}
if($price==“<10000 RM”){
$(“#按选项提交”).val($submited_by).text($nama);
$(“jawatan_pemohon”)。文本($jawatan);
$(“#jabatan_pemohon”).text($jabatan);
}否则{
$(“提交选项”).val($submited_id).text($nama_pemohon);
$(“jawatan_pemohon”).text($jawatan_pemohon);
$(“jabatan_pemohon”).text($jabatan_pemohon);
}
示例a:
单击第一个复选框->选项更改为“nama”,因为它进入if
单击任何复选框->选项更改为“pemohon”,因为它会进入else
例b:
单击第二个复选框->选项更改为“pemohon”,因为它进入else
再次单击第二个复选框->选项不会更改,因为它再次进入else
我需要更改逻辑还是缺少任何函数?取决于您对代码的期望。如果在取消选中复选框时需要清除值,则应在else
中设置清除值,并在else If
中设置第二个复选框的值。你确定那个复选框是正确的想法吗?也许单选按钮对您来说是更好的选择。如果我在else
语句中使用例如:$(“输入:复选框”).prop('checked',false)
,它会清除值吗?它会清除复选框的值,而不是select中选项的值。我应该使用empty()
?您是否有一些示例或参考资料供我检查?如果您用一些常量替换php段,会更清楚。