change()事件及val()/html()方法不会触发change事件
一.定义
- change()函数用于为每个匹配元素的change事件绑定处理函数
- 当元素的值发生改变时,会发生 change 事件;
- 适用范围:和以及;
- change() 函数触发 change 事件,或规定当发生 change 事件时运行的函数;
- 注意:当用于 select 元素时,change 事件会在选择某个选项时发生;当用于 text field 或 text area 时,该事件会在元素失去焦点时发生。
二.语法
- jQueryObject.change( [ [ data ,] handler ] )
- 参数:
- data:可选/任意类型,触发事件时,需要通过event.data传递给事件处理函数的任意数据
- handler :可选/Function类型,指定的事件处理函数。
三.val()/html()方法改变元素值后元素change事件无效解决方案:
- 方法一:手动出发:$(“input”).val(Math.random()).change()
- 方法二(很好用): (“#querySubSort”).val(“”) ;(“#querySubSort”).trigger(“change”);
四.代码块
$(function() {
$("#querySort").change(loadQuerySubSort);
$("#querySubSort").change(loadQueryEntry);
loadQuerySort();
});
function loadQuerySort() {
jQueryAjaxAsync("/assortAction/sortListByFlowCode", {"flowCode":"INCIDENT"},
function(sortTree_data){
loadFormData("querySort", $.parseJSON(sortTree_data));
});
}
function loadQuerySubSort() {
var querySortId = $("#querySort").val();
if (querySortId) {
jQueryAjaxAsync("/assortAction/subSortList", {"flowCode":"INCIDENT","id":querySortId},
function(sortTree_data){
loadFormData("querySubSort", JSON.parse(sortTree_data));
$("#querySubSort").val("") ;
$("#querySubSort").trigger("change");
});
}else {
$("#querySubSort").val("") ;
$("#querySubSort").trigger("change");
$("#querySubSort").html("");
$("#queryEntry").html("");
}
}
function loadQueryEntry() {
var querySubSortId = $("#querySubSort").val();
if (querySubSortId) {
jQueryAjaxAsync("/assortAction/entryList", {"flowCode": "INCIDENT", "id": querySubSortId},
function (sortTree_data) {
loadFormData("queryEntry", JSON.parse(sortTree_data));
$("#queryEntry").val("") ;
});
}else {
$("#queryEntry").val("") ;
$("#queryEntry").html("");
}
}
function clearParam(){
$(':input','#basicForm,#seniorForm')
.not(':button, :submit, :reset, :hidden')
.val('')
.attr("paramId", "")
.removeAttr('selected');
$("#queryStatus").selectpicker('deselectAll');
$("#querySort").trigger("change");
$("#querySubSort").trigger("change");
}