您好我正在编写基于php的代码,其中我生成了具有不同ID和名称的复选框
<input type="checkbox" name="settle_check[]" id="settle_check['.$res2['id'].']" value="1" onclick="calculate_discount(\''.$res2['id'].'\');"/>
我计算折扣的功能如下
function calculate_discount(id){
alert($('#settle_check['+id+']').val());
if($('#settle_check['+id+']').is(":checked")){
alert('Hiii');
}
else{
alert('Byeee');
}
}
现在每次都没有捕获值并发出未定义的警报。 请帮助我。
答案 0 :(得分:3)
您在ID选择器中使用[]
作为元字符。你需要逃脱它们。
使用
$('#settle_check\\['+id+'\\]').val()
使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。
OR
您可以使用Attribute Equals Selector [name="value"]
$('[id="settle_check[' + id +']"]').val()
答案 1 :(得分:1)
你也可以试试这个:
不是传递id,而是传递元素itselfe,如:
<input type="checkbox" name="settle_check[]" value="1" click="calculate_discount(this);"/>
并将功能更新为:
function calculate_discount(element){
alert($(element).val());
if($(element).is(":checked")){
alert('Hiii');
}
else{
alert('Byeee');
}
}
使用此解决方案可以避免不必要的jQuery搜索。
答案 2 :(得分:1)
使用此
$('#settle_check\\['+id+'\\]').val()