2013-06-05 6 views
0

Я использую правила с идентификатором «id», так как это дает мне большую гибкость при подключении этого проекта к проекту django. Основная проблема заключается в том, что имя поля модели - name '(name = "name") - который является зарезервированным словом в JavaScript.Проблемы с пользовательскими сообщениями JQuery Validation с .rules()

Согласно документации это выглядит как то, что я хочу сделать, это возможно, и я в значительной степени используя точный пример, как указано здесь: http://jqueryvalidation.org/rules/?rdfrom=http%3A%2F%2Fdocs.jquery.com%2Fmw%2Findex.php%3Ftitle%3DPlugins%2FValidation%2Frules%26redirect%3Dno#.22add.22rules

Проблема я не получаю обратно любой из обычая сообщения об ошибках, скорее, я предполагаю, что значения по умолчанию возвращаются. то есть. Если ничего не введено я получаю сообщение об ошибке по умолчанию обратно:

«Это поле обязательно»

В отличие от моего пользовательского сообщения:

«Обязательный ввод»

Если я ввожу 1 характер я получаю:

«Пожалуйста, введите не менее 2 символов»

в отличие от моего пользовательского сообщения:

«Пожалуйста, по крайней мере, {0} символов необходимы»

Я бегу Ubuntu 12.04 и вижу такое же поведение, как в Firefox и Chrome.

Я в значительной степени новичок, когда дело доходит до JQuery, поэтому я надеюсь, что есть очевидная проблема с моим копированием и вставкой из документов, которые я забыл ... Любые советы будут оценены.

Я включил свой код ниже.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
    <meta http-equiv="Content-Language" content="en-us" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title>jQuery Example 3</title> 

    <script type="text/javascript" language="javascript" src="Scripts/jquery-1.2.6.js"></script> 
    <script type="text/javascript" language="javascript" src="Scripts/jquery.validate.js"></script> 
    <script type="text/javascript" language="javascript"> 
     //Our validation script will go here. 
     $(document).ready(function(){ 
      // Set up validation based around the id. 
      $("#form1").validate(); 

      $("#fname1").rules("add", { 
       required: true, 
       minlength: 2, 
       messages: { 
        required: "Required input", 
        minlength: jQuery.format("Please, at least {0} characters are necessary") 
       } 
      }); 

      $("#lname1").rules("add", { 
       required: true 
      }); 
     }); 
    </script> 

    <style type="text/css"> 
    #container { 
     width: 350px; 
     height: 8em; 
     border: 1px #009933 solid; 
     background-color:#66FF66; 
     display:block; 
    } 

    label, input{ 
     margin:2px 0px 1px 4px; 
    } 

    label { 
     margin-top:3px; 
     font-family:"Times New Roman", Times, serif; 
     font-size:1.1em; 
    } 
    </style> 
</head> 

<body> 
<div id="container"> 
    <form id="form1"> 
     <label for="fname1">First Name: </label><br /> 
     <input name="txtFirstName" type="text" id="fname1" /><br /> 
     <label for="lname1">Last Name:</label><br /> 
     <input name="txtLastName" type="text" id="lname1" title="Please Enter a Last Name"/><br /> 
     <input type="submit" value="Submit" id="btnSubmit" /> 
    </form> 
</div> 
</body> 
</html> 

ответ

0

Ваш код работает отлично, я проверял, mabye второе сообщение сбивает с толку вас немного:

Если я ввожу 1 символ я получаю:

«Пожалуйста, введите по крайней мере, 2 символа "

в отличие от моего пользовательского сообщения:

" Пожалуйста, по крайней мере, {0} символов являются necessa чень»

{0} просто заполнитель, и он будет заполняться со значением minlength, так что вы получаете вам пользовательское сообщение.

меня копировать/вставить код и протестировали его, ничего не меняя, и это, кажется, работает нормально:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
    <meta http-equiv="Content-Language" content="en-us" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title>jQuery Example 3</title> 

    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script type="text/javascript" language="javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> 
    <script type="text/javascript" language="javascript"> 
     //Our validation script will go here. 
     $(document).ready(function(){ 
      // Set up validation based around the id. 
      $("#form1").validate(); 

      $("#fname1").rules("add", { 
       required: true, 
       minlength: 5,// changed it to 5 just to test the placeholder 
       messages: { 
        required: "You custom message ", 
        minlength: jQuery.format("Please, at least {0} characters are necessary") 
       } 
      }); 

      $("#lname1").rules("add", { 
       required: true 
      }); 
     }); 
    </script> 

    <style type="text/css"> 
    #container { 
     width: 350px; 
     height: 8em; 
     border: 1px #009933 solid; 
     background-color:#66FF66; 
     display:block; 
    } 

    label, input{ 
     margin:2px 0px 1px 4px; 
    } 

    label { 
     margin-top:3px; 
     font-family:"Times New Roman", Times, serif; 
     font-size:1.1em; 
    } 
    </style> 
</head> 

<body> 
<div id="container"> 
    <form id="form1"> 
     <label for="fname1">First Name: </label><br /> 
     <input name="txtFirstName" type="text" id="fname1" /><br /> 
     <label for="lname1">Last Name:</label><br /> 
     <input name="txtLastName" type="text" id="lname1" title="Please Enter a Last Name"/><br /> 
     <input type="submit" value="Submit" id="btnSubmit" /> 
    </form> 
</div> 
</body> 
</html> 
+0

Hi - большое спасибо за проверку! Странно, я просто попробовал снова в третьем браузере Chromium, копируя и вставляя этот код в другой, новый файл, и он отлично работает ... Итак, опять же, похоже, у меня проблемы с очисткой кеша браузера. Хотелось бы, чтобы я знал о каком-то дурацком доказательстве этого. – jayuu

Смежные вопросы