我有一个HTML table
,其中包含checkbox
多个选择(handlebar
)。我设置了{{status}}
的值Yes
和No
。
当值等于{{status}}
时,如何禁用checkbox
No(Function)
?
{{#invoices}}
<tr>
<td><input name="select_option" id="{{status}} "value="{{open_amount}}" type="checkbox"/></td>
<td style="white-space:nowrap;">{{company_code}}</td>
<td style="white-space:nowrap;">{{invoice_no}}</td>
<td style="white-space:nowrap;">{{invoice_type}}</td>
<td style="white-space:nowrap;">{{invoice_date}}</td>
<td style="white-space:nowrap;">{{due_date}}</td>
<td style="white-space:nowrap;"><font color="{{color}}">{{status}}</font></td>
<td style="white-space:nowrap;">{{open_amount}}</td>
</tr>{{/invoices}}
{{#invoices}}
function disable(){
if(document.getElementById('{{status}}') == 'Pending Process'){
document.getElementById('select_option').disabled = true;
}else{
document.getElementById('select_option').disabled = false;
}
}
{{/invoices}}
它有用吗?
答案 0 :(得分:2)
通常为了测试值,我使用自定义助手:
Handlebars.registerHelper('test', function(lvalue, operator, rvalue, options) {
var doDisplay = false;
var items = (""+rvalue).split("|");
var arrayLength = items.length;
for (var i = 0; (i < arrayLength); i++) {
if (operator == "eq") {
if (lvalue == items[i]) {
doDisplay = true;
}
} else if (operator == "ne") {
if (lvalue != items[i]) {
doDisplay = true;
}
} else if (operator == "gt") {
if (parseFloat(lvalue) > parseFloat(items[i])) {
doDisplay = true;
}
} else if (operator == "lt") {
if (parseFloat(lvalue) < parseFloat(items[i])) {
doDisplay = true;
}
}else if (operator == "le") {
if (parseFloat(lvalue) <= parseFloat(items[i])) {
doDisplay = true;
}
}else if (operator == "ge") {
if (parseFloat(lvalue) >= parseFloat(items[i])) {
doDisplay = true;
}
}
}
if (doDisplay) {
return options.fn(this);
} else {
return "";
}
});
你可以这样使用它:
<td><input name="select_option" value="{{open_amount}}" type="checkbox" {{#test status 'eq' 'No(Function)'}}
disabled
{{/test}}/></td>
答案 1 :(得分:0)
你可以绑定属性'disabled'。
<td><input name="select_option" {{status==='No'?'disabled':''}} value="{{open_amount}}" type="checkbox"/></td>