Я хочу отправить простую форму asp.net в jQuery
я могу принять
$("form[0]").submit()
всегда работы, перекрестный браузер?
Вы имеете в виду что-то вроде этого
$("#aspnetForm").submit()
Нечто подобное выше будет работать в кросс-браузере, как вы сказали
Код, который вы вставили, также кросс-браузерный. Это не будет работать в ЛЮБОМ браузере, так что, возможно, это считается кроссбраузерным :-) просто шутка
Нет, вы не можете этого предположить. $("form[0]").submit()
отправит первую форму на странице. Однако на странице ASP.NET можно иметь более одной формы, хотя только одна из них может быть формой на стороне сервера (с атрибутом runat="server"
).
Если вы хотите отправить серверную форму на странице ASP.NET, то я думаю, что лучшим способом будет сделать это в code-behind, зарегистрировав скрипт. Это немного сложнее, но должно всегда работать (и когда нет серверной формы, он ее обнаружит). Что-то вроде этого:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (this.Form != null)
{
string js = String.Format("$('#{0}').submit()", this.Form.ClientID);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Submit", js, true);
}
}
Это будет:
$("#aspnetForm").submit()
или
var theForm = document.forms['aspnetForm'];
theForm.submit()