TextBox вызывает Обратную передачу Кнопки в ASP.NET

Насколько я знаю, это невозможно, но вы можете просто добавить более простой конструктор в ваш класс и использовать его для тестирования. С другой стороны, если тест проверяет объект в состоянии, отличном от того, каким он будет в приложении, я не уверен, насколько хорошим будет такой тест.

5
задан Community 23 May 2017 в 10:33
поделиться

5 ответов

Вы можете попробовать установить кнопку по умолчанию на панели asp или в вашей форме. Это позволит вам контролировать то, что происходит, когда пользователь нажимает клавишу ввода.

3
ответ дан 18 December 2019 в 13:19
поделиться

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

Вам просто нужно проверить свойство window.event.keyCode, чтобы узнать, равно ли оно 13. Если это так, сбросьте его на 0.

function KeyPress()
  {
     if (window.event.keyCode == 13)
        {
           window.event.keyCode = 0;
        }
  }
0
ответ дан 18 December 2019 в 13:19
поделиться

Полагаю, я мог бы обнаружить нажатия клавиш «ввод» из этих текстовых полей с помощью javascript

Это то, что я сделал, чтобы обойти это поведение, и оно прекрасно работает в IE7 и FF3. Это просто немного неестественно.

Вот общий пример:

    function TextBox1_KeyDown(sender, e)
    {
    var key;
        if(window.event)
            key = window.event.keyCode; //IE
        else
            key = e.which; //firefox
        if(key == 13 && $("#TextBox1").val() != "")
        {
            WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("TextBox1", "", true, "", "", false, true));
        }
        return (key != 13);
    }

Я использовал WebForm_DoPostBackWithOptions, потому что мне нужны валидаторы для запуска. В противном случае вы можете использовать __DoPostBack.

Вот «прототипы»:

function __doPostBack(eventTarget, eventArgument)

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit)
{
    this.eventTarget = eventTarget;
    this.eventArgument = eventArgument;
    this.validation = validation;
    this.validationGroup = validationGroup;
    this.actionUrl = actionUrl;
    this.trackFocus = trackFocus;
    this.clientSubmit = clientSubmit;
}

function WebForm_DoPostBackWithOptions(options)

Надеюсь, это поможет.

PS: Я использовал здесь JQuery, но $ get был бы таким же.

0
ответ дан 18 December 2019 в 13:19
поделиться

Вы можете отключить нажатие клавиши Enter, чтобы пользователю приходилось нажимать на кнопки ImageButton. Просто вставьте этот блок javascript на свою страницу:

<script type="text/javascript">
function stopRKey(evt) { 
  var evt = (evt) ? evt : ((event) ? event : null); 
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
}
document.onkeypress = stopRKey;
</script>
1
ответ дан 18 December 2019 в 13:19
поделиться

здесь ' onkeydown = "return (event.keyCode! = 13);" >

прочтите весь пост здесь

6
ответ дан 18 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

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