jQuery onChange 只运行一次
Posted
技术标签:
【中文标题】jQuery onChange 只运行一次【英文标题】:jQuery onChange only running once 【发布时间】:2021-12-24 17:05:22 【问题描述】:我在 Wordpress Woo 表单中有 jQuery 函数,它基本上基于下拉填充某些字段,但是 jQuery 只执行一次。 代码:
jQuery(document).ready(function()
// Your code in here
jQuery(document).on('change', '#billing_complex_name', function()
myFunc();
)
function myFunc()
// your function code
var complex_name = jQuery('#billing_complex_name').val();
var suburb = jQuery('#billing_suburb').val();
if (complex_name == 'eldogleneast')
jQuery("#billing_suburb").val('ELD');
jQuery('#billing_postcode').val('0157');
else if (complex_name == 'Reldoglen')
jQuery("#billing_suburb").val('LPN');
jQuery('#billing_postcode').val('0133');
else if (complex_name == 'eldin')
jQuery("#billing_suburb").val('STK');
jQuery('#billing_postcode').val('2147');
jQuery("#billing_complex_address").val('Lion St');
else if (complex_name == 'elm')
jQuery("#billing_suburb").val('ELD');
jQuery('#billing_postcode').val('0147');
jQuery("#billing_complex_address").val('Lor Ave');
)
如何让它始终运行 onChange 而不仅仅是一次。
【问题讨论】:
请也添加您的 html 您如何调用方法? 添加您的 HTML 代码然后我们可以看到...您使用什么来更改事件,例如select
或 radio
或 checkbox
。
你能详细说明'它只执行一次'
@RaeeshAlam A Select 声明
@HowardE 在第一次从选择框中选择时,它将更改相关输入框的值,之后尝试不会发生任何变化
【参考方案1】:
如果第一次选择工作而第二次不工作,则需要在mouseenter
事件上reset value of select
,就像在我的 sn-p 代码中一样。
对于static
和dynamic
都不需要写document ready statement
选择更改。类似这样。
jQuery(document).on('change', 'select', function (e) // 做点什么 );
希望下面的sn-p对你有很大帮助。
function myFunc(getvalue)
var complex_name = getvalue;
if (complex_name == 'eldogleneast')
jQuery("#billing_suburb").val('ELD');
jQuery('#billing_postcode').val('0157');
else if (complex_name == 'Reldoglen')
jQuery("#billing_suburb").val('LPN');
jQuery('#billing_postcode').val('0133');
else if (complex_name == 'eldin')
jQuery("#billing_suburb").val('STK');
jQuery('#billing_postcode').val('2147');
jQuery("#billing_complex_address").val('Lion St');
else if (complex_name == 'elm')
jQuery("#billing_suburb").val('ELD');
jQuery('#billing_postcode').val('0147');
jQuery("#billing_complex_address").val('Lor Ave');
jQuery(document).on('change', '#billing_complex_name', function ()
var getname = jQuery('#billing_complex_name').val();
jQuery("#billing_suburb, #billing_postcode, #billing_complex_address").val('')// first reset
myFunc(getname);
);
jQuery(document).on('mouseenter', '#billing_complex_name', function ()
$(this).val(''); // need to reset after change
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="billing_complex_name">
<option value="" selected>---</option>
<option value="eldogleneast">eldogleneast</option>
<option value="Reldoglen">Reldoglen</option>
<option value="eldin">eldin</option>
<option value="elm">elm</option>
</select>
<br><br>
<label>Suburb</label><br>
<input type="text" id="billing_suburb">
<br><br>
<label>Post Code</label><br>
<input type="text" id="billing_postcode">
<br><br>
<label>Address</label><br>
<input type="text" id="billing_complex_address">
【讨论】:
以上是关于jQuery onChange 只运行一次的主要内容,如果未能解决你的问题,请参考以下文章