[英]Changes not reflected when setting text input value with javascript/jQuery
我試圖在http://www.adidas.co.uk/的結帳頁面上的Google Chrome瀏覽器的控制台中執行一些Javascript。
使用以下代碼用下面的ID填充輸入元素可以正常工作。 $("#dwfrm_delivery_singleshipping_shippingAddress_addressFields_houseNumber").val("value here")
但是,在不同的元素上,如下所示,絕對不會發生任何事情,並且文本不會出現在輸入字段中。
$("#dwfrm_delivery_singleshipping_shippingAddress_addressFields_firstName").val("value here")
您可以通過在http://www.adidas.co.uk/上的購物籃中添加隨機項目並單擊“結帳”來查看頁面。 我認為提供HTML代碼段不會有幫助,因為我希望頁面上的其他地方有干擾。
我嘗試通過直接設置value屬性來設置值,這也具有不更新文本輸入的相同效果。 盡管如此,我仍然能夠使用jQuery的.val()方法訪問設置值,只是對於某些輸入字段而言,它們不會顯示在屏幕上。
為什么會這樣呢?
@Emrah Izci嘗試運行此命令:
Array.prototype.slice.call(document.getElementsByTagName("input")).forEach(function(elem, ind, arr) {elem.value = "TEST"});
我不確定這是什么意思。 也許有隱藏的輸入持有實際值或什么?
您已經更改了輸入的實際值,但顯示的值不是,因為它是角度驅動的HTML,所以angularJS控制顯示內容,但未考慮控制台干擾。
修改后運行
$("element").trigger('input');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.