我正在创建一个脚本,管理员可以在其中为所有国内地区添加费用,也可以为国际地区增加费用。场景是: -
管理员点击添加费用按钮。他可以在那里增加费用,费用和交付日。现在,我想将charge
的值设置为name = delivery_charge[<?php echo $AddIndex; ?>][charge]
的所有文本框,将cost
的值设置为name=delivery_charge[<?php echo $AddIndex; ?>][cost]
的所有文本框,并设置delivery_days
的值到name=delivery_charge[<?php echo $AddIndex; ?>][days]
的所有文本框。
我所做的是
function addCharges(type){
var cost = parseFloat($('#modal-cost').val());
var charge = parseFloat($('#modal-charge-box').val());
var days = parseInt($('#modal-days').val());
if(isNaN(cost)){
cost = 0;
}
if(isNaN(charge)){
charge = 0;
}
if(isNaN(days)){
days = 0;
}
if(type == 'domestic'){
$('.domesticZones :checkbox').prop("checked", true);
$('.domesticZones input').prop("readonly", false);
//What code should i put here so that all text box with name delivery_charge[][cost] have value of cost and same for variables charge and days.
}else if(type == 'international'){
$('.internationalZones :checkbox').prop("checked", true);
}
}
答案 0 :(得分:0)
使用此:
// find name with [cost] at the end of name
$('input[name$="[cost]"]').val(cost);
// same goes to the others
更新的评论应该可以解决问题,您也可以使用正则表达式尝试此解决方案,但与上面的代码相比,这需要相当多的新行:
$('input[name$="[cost]"]').filter(function(){
// find the attribute name start with `delivery_charge`
// name and not followed by `_`
var regex = /delivery_charge(?!\_)/;
if ( regex.test( $(this).attr('name') ) ) return this;
}).val(cost);