2017-04-11 82 views
0

我有一个单选按钮,一个文本字段和一个选择字段。 这是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> 

然后我有一个变化的函数来存储由用户选择上述信息的一些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); 
    } 
}); 

}); 

现在这个工程的#del_time_rang2#del_time_rang如果用户首先选择正确的选项,然后点击单选按钮,它才会起作用。否则它会显示默认值(11-12pm)。 我认为这是因为更改事件是为单选按钮输入,但不知道如何修复它?有任何想法吗?

+0

它在magento – MariaL

+0

你希望它只在收音机的onchange事件期间工作,或者你可以提交一种按钮? –

+0

为什么不选择第二个收音机时隐藏/显示日期输入?通过将这些值绑定到##del_time_ *'这意味着您还需要设置事件来改变输入的select和onkeyup(或模糊),以便每当它们发生更改时都会分配新值 – Pete

回答

2

我认为你应该重视onChange事件给select也,故:

  • 我已经添加name="delivery"到选择
  • onChange事件$("[name='delivery']")

参见如下:

$(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">

注:反正我觉得selector应使用“类”属性,而不是“name”属性。

我希望它能帮助你,再见。