Я могу принять идентификатор формы asp.net, всегда являющийся тем же?

Я хочу отправить простую форму asp.net в jQuery

я могу принять

$("form[0]").submit()

всегда работы, перекрестный браузер?

1
задан David Thorisson 5 May 2010 в 20:32
поделиться

3 ответа

Вы имеете в виду что-то вроде этого

$("#aspnetForm").submit()

Нечто подобное выше будет работать в кросс-браузере, как вы сказали

Код, который вы вставили, также кросс-браузерный. Это не будет работать в ЛЮБОМ браузере, так что, возможно, это считается кроссбраузерным :-) просто шутка

1
ответ дан 3 September 2019 в 00:46
поделиться

Нет, вы не можете этого предположить. $("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);
    }
}
1
ответ дан 3 September 2019 в 00:46
поделиться

Это будет:

$("#aspnetForm").submit()

или

var theForm = document.forms['aspnetForm'];
theForm.submit()
0
ответ дан 3 September 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: