захватить, какая кнопка была нажата, чтобы вызвать проверку - PullRequest
1 голос
/ 09 октября 2009

Можно ли зафиксировать, какая кнопка была нажата в javascript? У меня настроена проверка, но я хочу, чтобы она проверялась только при нажатии кнопки и никакими другими способами.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, ЧТО У меня 3 ТЕКСТАБОЧКИ, ПРОСТО КАК НИЖЕ. Это для ввода номера телефона, разбитого на 3 текстовых поля.

То, что я хотел бы сделать, это поставить условие '&&' в этот javascript, если в операторе сказано установить args.IsValid в false при нажатии кнопки. Прямо сейчас это подтверждается клавишей Tab и щелчком других элементов управления. я просто хочу, чтобы он подтвердился нажатием кнопки "Отправить".

function checkPhNumn(sender, args) {
        alert(window.event);
        if (phnavalue.value != '' || phnevalue.value != '' || phnnvalue.value != '' ) {
            if (phnnvalue.value.length < 4) {
                args.IsValid = false;
            }
            else {
                ValidatorEnable(RFV2, true);
                ValidatorEnable(RFV3, true);
            }
        }
    }

 <ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" 
                            TargetControlID="phnnVal" 
                            HighlightCssClass="validatorCalloutHighlight"
                            ></ajaxToolkit:ValidatorCalloutExtender>

<asp:TextBox ID="witPhnn" runat="server" MaxLength="4" Width="50pt"></asp:TextBox>

                        <asp:CustomValidator ID="phnNumValn" runat="server" 
                            Display="None" 
                            ControlToValidate="witPhnn"
                            ErrorMessage="Please enter a valid phone number." 
                            SetFocusOnError="True"
                            EnableClientScript="true" 
                            ClientValidationFunction="checkPhNumn"
                            ></asp:CustomValidator>

Ответы [ 2 ]

1 голос
/ 09 октября 2009

Вы используете ASP.NET 2.0?

Если это так, существует свойство для кнопок и валидаторов, которое называется «Группа валидации». Указав имя для этого свойства, проверка будет запускаться только для тех, у кого совпадают значения группы проверки.

Например, допустим, у вас на странице есть два обязательных валидатора полей со значениями группы валидации, установленными как «group1» и «group2» соответственно. Позже вы добавляете элемент управления Button и присваивает свойству Validation Group этого элемента значение «group1».

Когда эта кнопка нажата, на самом деле будут срабатывать только валидаторы для «group1».

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

0 голосов
/ 09 октября 2009

Удалите ControlToValidate из вашего CustomValidator, который удалит вызов функции проверки при выходе из текстового поля. Использование ValidationGroups или установка CausesValidation = False на всех остальных кнопках не позволит им активировать проверку.

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