[英]Cannot get value of text field that is set by another function using jquery
我正在使用此 function 設置文本字段的值:
var end_limit = 'data'; jQuery(document).on('change', 'select[name=txtSetValue]', function() { jQuery("input[name=time]").prop('disabled', false); jQuery('input[name=time]').data('endtime', end_limit); }); jQuery(document).on('change', '.get_value', function() { console.log(jQuery("input[name=time]").data('endtime')); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script> <input type="text" name="time" value="" id="time" class="form-control" autocomplete="off" requried="1" data-endtime="" disabled="disabled"> <select name="txtSetValue"> <option value="0">One</option> <option value="1">Two</option> </select> <input type="button" value="Get Value" class="get_value"/>
現在,當我更改 select 字段時,我可以看到數據附加到瀏覽器中的 endtime 屬性,但是當我嘗試通過此腳本獲取它時 endLimit 不包含任何值,但在另一個地方相同的 function 正在那里工作不是動態集。
jQuery(document).on('change',".get_value",function(){
var endLimit = jQuery(this).attr('data-endtime');'
});
在最后一個代碼塊中,您通過.timepicker
引用輸入元素,但在第二個代碼塊的輸入元素上未設置時間選擇timepicker
。
您還使用data
方法修改數據屬性,但使用attr
方法檢索屬性。 這在理論上應該可行,但由於 jQuery 交互和引用 DOM 的方式可能會失敗。
首先,正如@dzmney 所說
在最后一個代碼塊中,您通過
.timepicker
引用輸入元素,但在第二個代碼塊的輸入元素上未設置時間選擇timepicker
。
選中此項,您使用的是較新的 jQuery 版本。
在較新的 jQuery 版本中-
要獲取屬性data-id
的內容(如<a data-id="123">link</a>
),您必須使用(對於較新的 jQuery 版本(jQuery >= 1.4.3))
$(this).data("id")
對於較低的 jQuery 版本 jQuery (jQuery < 1.4.3) 使用
$(this).attr("data-id");
建議在數據鍵中使用小寫字母,否則它只是針對不同的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.