Когда тег HTML вводит сообщение обратно при входе? - PullRequest
4 голосов
/ 14 мая 2009

У меня есть пара страниц asp.net с элементами управления TextBox. Некоторые из них выполняют обратную передачу при вводе (в элементе управления TextBox), а другие - нет. Что касается жизни, я не могу понять, почему или почему нет ...

Не думаю, что это как-то связано с asp.net. Не использовать ajax и т. Д. Попробовал поиграть с очень простой HTML-страницей и до сих пор не могу понять.

Может быть, внутри или вне тега ? Но все мои элементы управления asp: textbox находятся внутри стандартного тега формы, а некоторые делают, а некоторые нет. Не имеет отношения к autoPostback из того, что я вижу.

EDIT:

Пример разметки, которая вызывает пост обратно:

<html>
<body>

<form>
<input type=text />
</form>

</body>
</html>

У меня есть страницы asp.net, которые определенно не публикуются. Код обширный, и я не могу понять, почему нет.

EDIT2:

Как я могу предотвратить обратную передачу?

Ответы [ 3 ]

5 голосов
/ 15 мая 2009

Если у вас есть только одно текстовое поле и вы не хотите этого поведения, вы всегда можете поместить скрытый ввод в форму.

<html>
    <body>
        <form>
            <input type="text" ></input>
            <input type="text" style="visibility:hidden"></input>
        </form>
    </body>
</html>

Я пробовал это в IE7 и FF3, и это работает.

2 голосов
/ 14 мая 2009

Как правило, большинство веб-браузеров обнаруживают, когда форма имеет только одно текстовое поле, и автоматически отправляют форму при нажатии клавиши ввода.

Если у вас есть несколько текстовых полей или несколько форм формы, поведение варьируется. ASP.Net имеет механизм «defaultButton» для кнопок, то есть вы можете указать, какая кнопка является кнопкой отправки для данной панели в случае нажатия клавиши ввода. Вы можете проверить этот пост для получения дополнительной информации о настройке ваших форм для правильной отправки обратно.

Как упомянул Boo, это не будет вызываться многострочными текстовыми полями.

Если в вашей форме между браузерами поведение действительно дрянное, вам, возможно, придется взглянуть на решение javascript, чтобы поймать нажатие клавиши ввода, и "вручную" отправить форму через javascript.

0 голосов
/ 14 мая 2009

Если элемент управления textbox установлен на autopostback, он будет выполнять обратную передачу при каждом нажатии клавиши (что позволяет запускать событие TextChanged).

Далее, текстовые поля, для которых свойство Multiline имеет значение false, будут отображаться для обратной передачи при вводе. На самом деле происходит отправка формы в соответствии с поведением в браузере.

Ящики, для которых для Multiline установлено значение true, не будут вызывать отправку формы при вводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...