触发变化事件触发backbone事件
Trigger change event to trigger backbone event
我正在预填表格(从外部脚本生成)。使用 Jquery:$("#first_name_1").val("test");
提交表单时提示我的输入字段为空..
经过一些研究:
onchange only fires when the user types into the input and then the input loses focus.
我尝试了每个事件(一切!):$("#first_name_1").trigger("change"), 等..
几个小时后,我看到我的表单已通过使用 Backbone.js 的外部脚本进行了验证...它是缩小版的废话,但我现在在这里 :
return n.addHandler([{
selector: "[contenteditable]",
updateMethod: "html",
events: ["input", "change"]
}, {
selector: "input",
events: ["propertychange", "input", "change"],
update: function (e, t) {
console.log("88");
e.val(t);
},
getVal: function (e) {
console.log("99");
console.log(e);
return e.val();
}
更新 -> Link to the external Backbone.js script
当我在输入字段中手动键入一些数据时,应用程序仅记录“99”。但是当我使用 Jquery val() 函数时不是...
所以 如何在我的外部 backbone 文件中触发此事件??
非常感谢您的帮助...
PS: 我没有任何经验 Backbone.js
我的应用程序是 Spring 启动应用程序。前端:Html、语义 UI、Jquery、Thymeleaf。
更新
我已经回答了我自己的答案..
好的,我已经从外部人员那里收到了一些代码,现在可以使用了:
而不是
function preFillForm(){
var gegevens = {'first_name_1':'test2 ','last_name_2':'test2 ','e-mail_address_3':'test2@test.com '};
for(var id in gegevens){
$("#" + id).val(gegevens[id]);
$("#" + id).trigger("change");
}
}
我需要做
function preFillForm(){
var gegevens = [[${gegevens}]];
for(var id in gegevens){
var input = $("#" + id)[0];
input.value = gegevens[id];
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
input.dispatchEvent(evt);
}
else {
input.fireEvent("onchange");
}
}
}
我不太明白其中的区别,但我很高兴它现在可以正常工作了。
我正在预填表格(从外部脚本生成)。使用 Jquery:$("#first_name_1").val("test");
提交表单时提示我的输入字段为空..
经过一些研究:
onchange only fires when the user types into the input and then the input loses focus.
我尝试了每个事件(一切!):$("#first_name_1").trigger("change"), 等..
几个小时后,我看到我的表单已通过使用 Backbone.js 的外部脚本进行了验证...它是缩小版的废话,但我现在在这里 :
return n.addHandler([{
selector: "[contenteditable]",
updateMethod: "html",
events: ["input", "change"]
}, {
selector: "input",
events: ["propertychange", "input", "change"],
update: function (e, t) {
console.log("88");
e.val(t);
},
getVal: function (e) {
console.log("99");
console.log(e);
return e.val();
}
更新 -> Link to the external Backbone.js script
当我在输入字段中手动键入一些数据时,应用程序仅记录“99”。但是当我使用 Jquery val() 函数时不是...
所以 如何在我的外部 backbone 文件中触发此事件??
非常感谢您的帮助...
PS: 我没有任何经验 Backbone.js 我的应用程序是 Spring 启动应用程序。前端:Html、语义 UI、Jquery、Thymeleaf。
更新
我已经回答了我自己的答案..
好的,我已经从外部人员那里收到了一些代码,现在可以使用了:
而不是
function preFillForm(){
var gegevens = {'first_name_1':'test2 ','last_name_2':'test2 ','e-mail_address_3':'test2@test.com '};
for(var id in gegevens){
$("#" + id).val(gegevens[id]);
$("#" + id).trigger("change");
}
}
我需要做
function preFillForm(){
var gegevens = [[${gegevens}]];
for(var id in gegevens){
var input = $("#" + id)[0];
input.value = gegevens[id];
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
input.dispatchEvent(evt);
}
else {
input.fireEvent("onchange");
}
}
}
我不太明白其中的区别,但我很高兴它现在可以正常工作了。