Проверка Spry предотвращает отправку формы на недоступные поля - PullRequest
0 голосов
/ 17 сентября 2011

Я работаю над формой, в которой динамически добавляются несколько полей, эти поля ввода также имеют проверки spry, поэтому форма отправляется после проверки.что динамические поля также могут быть удалены, если не требуется.Я удалил эти поля с помощью jquery и больше не доступен в форме, но при выполнении этой же формы невозможно отправить с помощью кнопки отправки.

Я пытаюсь отправить форму с помощью функции javascript form.submit (), форма отправлена, но кнопкапеременная не может быть получена.

Итак, как я могу отключить проверку валидации spry в недоступных полях.


Спасибо за ваш ответ, это хорошо работает, пожалуйста, предложите любую ссылку на учебники spry:)

Более того, я хочу попросить применить проверку spry, просто используя следующую команду!

var sprytextfield1 = new Spry.Widget.ValidationTextField ("sprytextfield_", "none", {minChars: 5,maxChars: 10});

но я просто уничтожаю sprytextfield1?Хорошо ли использовать его как или нужно использовать другой метод!

также упомяните, как реализовать на нескольких полях ... где также есть некоторые поля выбора!

1 Ответ

1 голос
/ 18 сентября 2011

Если у вас есть ссылка на удаляемые элементы, у виджетов проверки Spry есть метод destroy ().

Следующий код показывает, как сделать это тривиальным образом:

<!DOCTYPE html>
<html>
<head>
<title>Notifications</title>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
<script>

function clearValidation(){
    if(sprytextfield1){
        sprytextfield1.reset();
        sprytextfield1.destroy()
    }
}

function reapplyValidation(){
    sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:10});
}

</script>
</head>
<body>

<form name="form1" method="post" action="">
    <label for="sample"></label>
    <span id="sprytextfield1">
    <label for="myField"></label>
    <input type="text" name="myField" id="myField">
    <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldMinCharsMsg">Minimum number of characters not met.</span><span class="textfieldMaxCharsMsg">Exceeded maximum number of characters.</span></span>
<input type="submit" name="submit" id="submit" value="Submit">
    <input type="button" name="clear" id="clear" value="clear" onclick="clearValidation();" >
    <input type="button" name="reapply" id="reapply" value="reapply" onclick="reapplyValidation();" >
</form>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:10});
</script>
</body>
</html>

Предполагая, что у вас есть файлы Spry в том же месте, в котором их ищет эта страница, при загрузке страницы в браузере, если вы немедленно нажмете кнопку отправки, вы должны увидеть сообщение проверки. Нажатие на кнопку очистки удалит проверку (я также добавил вызов reset (), чтобы очистить сообщение проверки, но если ваши поля и их оболочка сообщения проверки будут удалены со страницы, эта часть может не понадобиться). Затем, нажав кнопку «Отправить», вы сможете правильно отправить страницу. Если вы загрузите страницу, затем нажмите «Отправить» (увидев сообщение проверки), затем нажмите кнопку «Очистить» (также удаляя сообщение проверки), затем нажмите кнопку «Повторно применить». Тогда кнопка отправки должна показать подтверждение.

...