[英]jQuery find all elements with same name start as selector
I am building the form which has SELECT and few inputs. 我正在建立具有SELECT和少量输入的表单。 The part of it looks like this (only for Monday example, there will be 7 days..):
它的一部分看起来像这样(仅对于星期一示例,将有7天。):
<div class="row">
<div class="col-md-3">
<div class="form-group mb-md">
<input type="text" name="1[day]" class="form-control text-bold" value="Monday" readonly>
</div>
</div>
<div class="col-md-1">
<div class="form-group">
<select class="form-control input-md mb-md" name="1[open]">
<option value="1" selected>Open</option>
<option value="0">Closed</option>
</select>
</div>
</div>
<!-- Working Hours -->
<div class="col-md-2">
<div class="form-group">
<input type="text" class="form-control time" name="1[start]" value="08:00">
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="text" class="form-control time" name="1[end]" value="22:00">
</div>
</div>
<!-- Booking Hours -->
<div class="col-md-2">
<div class="form-group">
<input type="text" class="form-control time" name="1[from]" value="08:00">
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="text" class="form-control time" name="1[to]" value="22:00">
</div>
</div>
</div>
I want to make time fields with same name start as SELECT field name start react to SELECT change. 我想使具有相同名称的时间字段以SELECT字段名称开始的方式对SELECT更改作出反应。 If value is 0 then all fields with same name start get attribute disabled.
如果value为0,则所有具有相同名称的字段都将开始获取属性。
So far i made this function, however i don't know hot to determine changed field name and correspondingly take actions against other fields. 到目前为止,我已经实现了此功能,但是我不知道确定更改的字段名称并相应地针对其他字段采取措施。
$("select[name$='[open]']").change(function() {
if ($(this).val() == 0) {
// Should disable all input fields with same name as SELECT
} else if ($(this).val() == 1) {
// Should enable all input fields with same name as SELECT
}
});
Not sure if this is what you are attempting to achieve. 不确定这是否是您要实现的目标。
Please try below code. 请尝试以下代码。
$("select[name$='[open]']").change(function() {
var num = $(this).attr("name").replace("[open]",'');
var elems = $( "input[name^='"+num+"']");
if ($(this).val() == 0) {
// Should disable all input fields with same name as SELECT
elems.prop('disabled',true);
} else if ($(this).val() == 1) {
// Should enable all input fields with same name as SELECT
elems.prop('disabled',false);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.