Использование jQuery для изменения цвета текстового поля при сбое проверки

#jquery #asp.net #regex

#jquery #asp.net #регулярное выражение

Вопрос:

Я пытаюсь использовать jQuery для изменения цвета текстового поля при сбое средства проверки регулярных выражений.

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

 <script type="text/javascript">
    function ValidateTextBox(source, args)
    {
        var is_valid = $("#TextBox1").val() != "";
        $("#TextBox1").css("background-color", is_valid ? "white" : "red");
        args.IsValid = is_valid;
    }
</script>
  

Кроме того, я не понимаю, в чем смысл

 args.IsValid = is_valid;
  

Находится в функции.


Вот что я пытаюсь сейчас:

 <script type="text/javascript">
function ValidateTextBox(source, args) {
    var is_valid = false;

    //Regex goes here
    var regex = [A-Za-z];
    if (regex.test($('#TextBox1').val())) {
        //If input was correct
        is_valid = true;
    }
    else {
        //If input is not correct
        $("#TextBox1").css("background-color" : "red");           
    }
    args.IsValid = is_valid; //Returns validity state
}


</script>
  

Ответ №1:

 function ValidateTextBox(source, args)
{
    //var is_valid = $("#TextBox1").val() != ""; //returns true or false

    //add regex test, lots of way and set result to is_valid
    var is_valid = false;
    var rege = /^([A-Za-z0-9_-.]) @([A-Za-z0-9_-.]) .([A-Za-z]{2,4})$/; //example
    if(rege.test($('#TextBox1').val())){ 
        is_valid = true;
    }

    $("#TextBox1").css("background-color", is_valid ? "white" : "red");
    args.IsValid = is_valid; //tells validatin engine if this item is valid or not
}
  

Комментарии:

1. Некоторые вещи, которые я не понимаю. var is_valid = $(«#TextBox1»).val() Не должен ли он быть источником вместо #TextBox1? Поскольку источником является объект, вызывающий событие. Кроме того, где мне ввести регулярное выражение? Я действительно новичок в javascript.

2. Переменная rege имеет регулярное выражение. $(«#TextBox1»).val() — это то, как jQuery проверяет значение элемента.

3. Хорошо, я думаю, что понимаю функцию, только одна вещь, о которой я все еще смущен. Если вы используете метод «rege.test», он установит для is_valid значение true, если ввод правильный, верно? в противном случае это меняет цвет фона? Разве там не должно быть другого?

Ответ №2:

Регулярное выражение JavaScript должно быть окружено // примерно так.

 //Regex goes here
var regex = /[A-Za-z]/;