Firefox 4.01 忽略 jQuery“event.preventDefault()”之后的所有内容在表单元素中调用
我有一个网页,它通过 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()
失败?谢谢你的建议。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不会为绑定处理程序自动定义
事件
。这是第一个论点。我认为您的意思是:注意:我还建议使用
event
以外的名称。event
is not defined automatically for a bound handler. It is the first argument. I think you meant:Note: I'd also suggest using a name other than
event
.从您的代码来看,未定义
event
。尝试将 jobJSONConfigurationFormSubmit.live('click', function(event) { 作为第一行。希望有帮助!Judging from your code,
event
isn't defined. TryjobJSONConfigurationFormSubmit.live('click', function(event) {
as line one. Hope that helps!尝试:
Try: