2014-03-26 44 views
5

我想在$("#address").change函數中執行警報,但只有在使用按鈕更改了值時才需要執行警報。文本框上的觸發事件值更改

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
$(document).ready(function(){ 
    $('button').click(function(){ 
    $("#address").val("hi") 
    }) 
    $("#address").change(function(){ 
    alert("The text has been changed."); 
    }); 

}); 
</script> 
</head> 
<body> 
<input type="text" id="address"> 
<button>Click</button> 
</body> 
</html> 
+1

$(「#地址」),如果你執行文本字段的任何變化變化將觸發。如果只想在按鈕點擊時觸發警報,爲什麼不使用按鈕點擊功能中的警報。 – Yasitha

+0

這不是我的原始應用程序!我的應用程序處理動態更改值到所有的txt字段,我必須爲每個觸發事件!這個示例可以幫助我的應用程序!所以我發佈了這個 – user3383301

回答

7

可以在click功能觸發change事件:

$('button').click(function(){ 
 
    $("#address").val("hi") 
 
    $("#address").change(); //or $("#address").trigger("change"); 
 
}); 
 
$("#address").change(function(){ 
 
    alert("The text has been changed."); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="address" type="text"> 
 
<button>Change</button>

+0

Works和謝謝:) – user3383301

0

Trigger更改事件是這樣的:

$('button').click(function(){ 
    $("#address").val("hi") 
    $("#address").trigger('change'); 
    }); 
    $("#address").change(function(){ 
    alert("The text has been changed."); 
    }); 
0

如果你想在#警報廣告只有當按鈕被點擊,而不是手動更改#address值時,着裝的變化:

var textChangedHandler = function() { 
    alert("The text has been changed."); 
}; 

$('button').click(function(){ 
    // Attach event handler for 'change' to #address 
    $("#address").bind("change", textChangedHandler); 

    // Update #address value 
    $("#address").val("hi"); 

    // Trigger 'change' 
    $("#address").trigger('change'); 

    // Remove event handler for 'change' from #address 
    $("#address").unbind("change", textChangedHandler); 
}); 

DEMO

相關問題