[英]Issue with input change event and input fields
I've got a radio button, a text field and a select field. 我有一个单选按钮,一个文本字段和一个选择字段。 This is the html code:
这是html代码:
<div class="wb-success-delivery">
<input type="radio" name="delivery" value="0" /><span> Now)</span>
</div>
<div class="success-delivery">
<input type="radio" name="delivery" value="2" />
<input type="text" class="test" id="del_time_rang2" value="Tomorrow" name="delivery" />
<select id="del_time_rang" >
<option value="11-12pm">11-12pm</option>
<option value="12-1pm">12-1pm</option>
<option value="1-2pm">1-2pm</option>
</select>
</div>
I've then got some jQuery code with a change function to store the information that was selected by the user above. 然后,我得到了一些带有更改功能的jQuery代码,用于存储上述用户选择的信息。
$j(document).ready(function(){
$j("input[name='delivery']").change(function(){
var $jtime= $j('#del_time_rang').val();
var $jdate= $j('#del_time_rang2').val();
var $jresult= $jdate + ' between ' + $jtime ;
if($j("input[name='delivery']:checked").val()==0) {
$j("#del_time_1").val('Now');
$j("#del_time_2").val('Now');
} else if($j("input[name='delivery']:checked").val()==2) {
$j("#del_time_1").val($jresult);
$j("#del_time_2").val($jresult);
}
});
});
Now this works for #del_time_rang2
but for #del_time_rang
it only works if the user selects the right option first and then clicks the radio button. 现在,此方法适用于
#del_time_rang2
#del_time_rang
,但适用于#del_time_rang
,仅当用户首先选择正确的选项然后单击单选按钮时,此方法才有效。 Otherwise it shows the default (11-12pm). 否则,它将显示默认值(11-12pm)。 I assume this is because the change event is for the radio button input, but not sure how I can fix it?
我认为这是因为change事件是用于单选按钮输入的,但是不确定如何解决? Any Ideas?
有任何想法吗?
I think you should attach onChange
event to the select
also, so: 我认为您也应该将
onChange
事件附加到select
,因此:
name="delivery"
to the select name="delivery"
onChange
event to $("[name='delivery']")
onChange
事件附加到$("[name='delivery']")
See follow: 请参阅跟随:
$(document).ready(function(){ $("[name='delivery']").change(function(){ var $jtime= $('#del_time_rang').val(); var $jdate= $('#del_time_rang2').val(); var $jresult= $jdate + ' between ' + $jtime ; if($("input[name='delivery']:checked").val()==0) { $("#del_time_1").val('Now'); $("#del_time_2").val('Now'); } else if($("input[name='delivery']:checked").val()==2) { $("#del_time_1").val($jresult); $("#del_time_2").val($jresult); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="wb-success-delivery"> <input type="radio" name="delivery" value="0" /><span> (Now)</span> </div> <div class="success-delivery"> <input type="radio" name="delivery" value="2" /> <input type="text" class="test" id="del_time_rang2" value="Tomorrow" name="delivery" /> <select id="del_time_rang" name="delivery" > <option value="11-12pm">11-12pm</option> <option value="12-1pm">12-1pm</option> <option value="1-2pm">1-2pm</option> </select> </div> <input type="text" id="del_time_1">
Note: Anyway I think that selector
should be used the "class" attribute instead the "name" attribute. 注意:无论如何,我认为应该使用
selector
的“类”属性而不是“名称”属性。
I hope it helps you, bye. 希望对您有帮助,再见。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.