我正在开发一个项目,如果选择了星期几,用户将需要输入工作时间。用户已请求禁用字段,直到检查日期为止。
理想情况下,我希望尽可能保持智能和动态,使用日值来构建输入,而不是根据每天编写单独的条件。
到目前为止,这是我的基本设置:
https://i.imgur.com/VhBvZs3.png
用JQuery捕获click事件,并构建对象名称:
$("input[type=checkbox][id*=cblDays]").click(function () {
if (this.checked) {
var day = $(this).val();
var startControlID = "txtNewStart" + day;
var finishControlID = "txtNewFinish" + day;
var lunchControlID = "ddlLunchNew" + day;
$this.find('input[name$=' + startControlID + ']').attr("disabled", false);
}
我已经证明了" startControlID"变量正在填充正确的ID,但我遇到的问题是选择器似乎没有找到控件。
有没有人知道我哪里出错了?
答案 0 :(得分:0)
我设法找到了一个解决方案,希望将来可以帮助某人 - 我将ClientIDMode属性更改为" Static"在asp:textboxes上并将我的jQuery选择器修改为:
$(" [id $ =" + startControlID +"]")。attr("禁用",false);
所以我的整个jQuery函数是:
$("输入[type = checkbox] [id * = cblDays]")。click(function(){
if (this.checked) {
var day = $(this).val();
var startControlID = "txtNewStart" + day;
var finishControlID = "txtNewFinish" + day;
var lunchControlID = "ddlLunchNew" + day;
$("[id$=" + startControlID + "]").attr("disabled", false);
$("[id$=" + finishControlID + "]").attr("disabled", false);
$("[id$=" + lunchControlID + "]").attr("disabled", false);
}
else {
var day = $(this).val();
var startControlID = "txtNewStart" + day;
var finishControlID = "txtNewFinish" + day;
var lunchControlID = "ddlLunchNew" + day;
$("[id$=" + startControlID + "]").attr("disabled", true);
$("[id$=" + finishControlID + "]").attr("disabled", true);
$("[id$=" + lunchControlID + "]").attr("disabled", true);
}
});
希望这可以节省未来土地上的某个人!