iT邦幫忙

0

JS 事件增加input的值

我有一個按鈕 按下去會自動幫input的值填好
input 使用者不用點擊到
然後我要再抓這個input的值要怎抓
我用change也抓不到值

因為 function 是用模版 所以在不修改function內容的前提下 要在外部抓值

<button type='button' onclick="TESTA()">按我 代入值</button>
<input type="text" name="vid">
<script>
    $(document).ready(function(){
		$('input[name="vid"]').on("change",function(e){
			console.log($('input[name="vid"]').val());
		});
	});
	function TESTA(){
		$('input[name="vid"]').val("ABC");
	}
</script>
weiclin iT邦高手 4 級 ‧ 2018-06-19 11:47:10 檢舉
改完以後順便 trigger 一下
http://api.jquery.com/trigger/
1

先試試下面值有沒有抓到吧,有的話,應該不需要change event

function TESTA(){
	$('input[name="vid"]').val("ABC");
    console.log($('input[name="vid"]').val());
}

只要寫成這樣就可以抓到了,存在str裡,剩下就看你想怎麼用了

var str = '';
function TESTA(){
	$('input[name="vid"]').val("ABC");
    str = $('input[name="vid"]').val();
}
柯柯 iT邦新手 5 級 ‧ 2018-06-19 11:52:58 檢舉

因為 function 是用模版 所以在不修改function內容的前提下 要在外部抓值 不好意思 忘記說明不能修改到function /images/emoticon/emoticon20.gif

不能改那最簡單的方式只能button另外增加click event了

var str = '';
 $('button').on("click",function(){
    str = $('input[name="vid"]').val();
     console.log(str);
 });
0
tacodrem
iT邦新手 5 級 ‧ 2018-06-19 16:27:30

既然input的值是由程式塞進去的, 那在塞進去之前先存放在一個全域變數底下, 然後在需要此字串的function裡面調用這全域變數就可以抓到值了?

0
Rach
iT邦新手 5 級 ‧ 2018-06-21 08:59:42

很早之前的議題了,可以看一下以前的issue作者是怎麼解釋的。

換個方法,數字改變就是點了按鈕,不如將onclick加上$('input[name="vid"]').trigger( "change" );,這樣也可以解決你現在的問題,也不會更動到你的funtion的內容,且在點擊按鈕或手動輸入,都可以被偵測到!

我要發表回答

立即登入回答