【发布时间】:2011-05-05 19:46:14
【问题描述】:
我有一个网页,它通过 JavaScript 动态生成 HTML 表单,并将其倒入 ID 为 jobJSONConfigurationForm 的 div。
为了接管表单的 Submit 元素(id jobJSONConfigurationFormSubmit),我调用了 submit-div 的 live 函数:
jobJSONConfigurationFormSubmit.live('click', function() {
event.preventDefault();
var jobSummaryJSONTextareaValue = $("#jobSummaryJSONTextarea").val();
var jobSummaryJSONObj = null;
try {
jobSummaryJSONObj = JSON.parse(jobSummaryJSONTextareaValue);
} catch(e) {
alert('This is not a valid JSON string. Please try again with a JSON-formatted string.');
}
updateJobSummaryWithJSONObj(jobSummaryJSONObj);
});
updateJobSummaryWithJSONObj() 函数更新页面的数据模型和视图(其他表单和动态生成的 HTML)。
此代码更新 Chrome 11 和 10 上的模型和视图,但这不适用于 Firefox。数据模型和视图在 Firefox 4.01 中没有更新。
如果我在event.preventDefault(); 行之前添加alert('foo'),Firefox 会向我显示警告对话框,但不会运行其余函数中的代码。
如果我在event.preventDefault(); 行之后添加alert('foo'),Firefox 不会显示警报或在函数的其余部分运行代码。
我在 Firefox 下使用 jQuery 做错了什么,导致 event.preventDefault() 失败?谢谢你的建议。
【问题讨论】:
-
从
event.preventDefault();更改为return false不可行吗?这样你就不需要event声明了。 -
这在 Chrome 中有效的唯一原因是你在那里选择了
window.event。
标签: javascript jquery firefox firefox4