Я изо всех сил пытался сделать эту работу в течение достаточно долгого времени.У меня есть следующий код:
$(document).ready(function (event) {
$('form').submit(function (event) {
...
});
});
В большинстве мест, в том числе на сайте jQuery, я обнаружил, что это предотвратит отправку формы:
return false;
Это не так.
Далее я прочитал все связанные вопросы и ответы на этом сайте и опробовал их все.В Chrome и Firefox это работает:
event.preventDefault();
В IE8 это не так.Я читал, что IE не поддерживает это, и мы должны использовать это:
event.returnValue = false;
Хотя несколько человек подтверждают, что это работает для них (например, функция event.preventDefault () не работает в IEЛюбая помощь? ), это не для меня.Я не уверен, почему, хотя.У меня есть форма с кнопкой отправки, ничего особенного, но, даже если я добавлю только этот фрагмент кода, форма все еще отправляется:
$(document).ready(function (event) {
$('form').submit(function (event) {
event.returnValue = false;
});
});
Есть идеи?
ПоследнееВещи: я читал, что мы должны сначала проверить это перед вызовом protectDefault ():
if (event.preventDefault) { event.preventDefault(); }
Но в IE8 существует event.preventDefault и не выдается никакой ошибки.Как это может быть, если он не поддерживается IE?
Обновление 1: Я пробовал упрощенную версию со следующим кодом:
CancelSubmitTest.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CancelSubmitTest.aspx.cs" Inherits="HtmlEditor.CancelSubmitTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/CancelSubmit.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="SaveButton" runat="server"
Text="Save" OnClick="SaveButtonClick" CausesValidation="true" ValidationGroup="SomeValidationGroup" />
</div>
</form>
</body>
</html>
CancelSubmitTest.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace HtmlEditor
{
public partial class CancelSubmitTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SaveButtonClick(object sender, EventArgs e)
{
}
}
}
CancelSubmit.js
$(document).ready(function (event) {
$('form').submit(function (event) {
event.returnValue = false;
});
});
Это довольно простой пример.Код JavaScript выполняется, но форма все еще отправляется, хотя я установил для event.returnValue значение false.Что я делаю не так?
Обновление 2: Я изменил код JavaScript в упрощенном проекте следующим образом:
$(document).ready(function (event) {
$('form').submit(function (event) {
return false;
});
});
Он работает в IE, но яеще нужно выяснить, почему это не работает в моем приложении.Спасибо всем за помощь.