簡體   English   中英

無法使用 jquery 獲取由另一個 function 設置的文本字段的值

[英]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");

建議在數據鍵中使用小寫字母,否則它只是針對不同的屬性。

@VisioN 回答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM