PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: не проверяется по [form=id]
Поиск в теме | Версия для печати
DlTA
Отправлено: 20 Ноября, 2020 - 13:17:14
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
добрый
код:
CODE (
html ):
скопировать код в буфер обмена
<script src = "/js/jquery-3.2.1.min.js" ></ script >
<script src = "/js/jquery.validate.min.js" ></ script >
<input type = "text" name = "q" form= "f" required>
<form id = "f" >
<input type = "text" name = "w" required>
<button type = "submit" > send</ button >
</ form >
<script type = "text/javascript" >
$('form').validate({
});
</ script >
поле в форме проверяется, НО поле подключенное по идентификатору формы не проверяется '<input type="text" name="q" form="f" required>'
как это исправить??
DlTA
Отправлено: 20 Ноября, 2020 - 17:13:00
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
Отвечаю на свой вопрос, печалька, нужно допиливать скрипт
в файле jquery.validate.js (не jquery.validate.min.js!!)
нужно поправить
Спойлер (Отобразить ) CODE (
javascript ):
скопировать код в буфер обмена
//...
elements: function ( ) {
var validator = this ,
rulesCache = { } ;
return $( this .currentForm )
.find ( "input, select, textarea, [contenteditable]" )
.not ( ":submit, :reset, :image, :disabled" )
.not ( this .settings .ignore )
.filter ( function ( ) {
var name = this .name || $( this ) .attr ( "name" ) ; // For contenteditable
if ( ! name && validator.settings .debug && window.console ) {
console.error ( "%o has no name assigned" , this ) ;
}
// Set form expando on contenteditable
if ( this .hasAttribute ( "contenteditable" ) ) {
this .form = $( this ) .closest ( "form" ) [ 0 ] ;
}
// Select only the first element for each name, and only those with rules specified
if ( name in rulesCache || ! validator.objectLength ( $( this ) .rules ( ) ) ) {
return false ;
}
rulesCache[ name ] = true ;
return true ;
} ) ;
//...
нужно добавить выборку и по идентификатору
Спойлер (Отобразить ) CODE (
javascript ):
скопировать код в буфер обмена
//..
// Я не спец, сильно не ругайте))
var id = $( this .currentForm ) .attr ( 'id' ) ;
if ( id!== undefined) {
return $( this .currentForm )
.find ( "input, select, textarea, [contenteditable]" ) .add ( '[form=' + id+ ']' )
.not ( ":submit, :reset, :image, :disabled" )
.not ( this .settings .ignore )
.filter ( function ( ) {
var name = this .name || $( this ) .attr ( "name" ) ; // For contenteditable
if ( ! name && validator.settings .debug && window.console ) {
console.error ( "%o has no name assigned" , this ) ;
}
// Set form expando on contenteditable
if ( this .hasAttribute ( "contenteditable" ) ) {
this .form = $( this ) .closest ( "form" ) [ 0 ] ;
}
// Select only the first element for each name, and only those with rules specified
if ( name in rulesCache || ! validator.objectLength ( $( this ) .rules ( ) ) ) {
return false ;
}
rulesCache[ name ] = true ;
return true ;
} ) ;
}
//..
вот такую штучку дописать ....add('[form='+id+']')
)
Vladimir Kheifets
Отправлено: 21 Ноября, 2020 - 06:29:39
Частый посетитель
Покинул форум
Сообщений всего: 872
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)
DlTA пишет: Отвечаю на свой вопрос, печалька, нужно допиливать скрипт...
Добрый день!
Может быть проще было бы написать валидатор на чистом JS?
Цитата: ...
сейчас я подошел к определенной точке и чувствую себя виновным, вспоминая все случаи, когда я вызывал легендарную функцию $() (как и множество других разработчиков, с кем я разговаривал). Я и раньше постоянно старался использовать чистый JS везде, где это будет безопасно для всех браузеров. И сейчас я чувствую, что пора лично от себя и от всего сообщества front-end разработчиков сказать прощай нашему старому другу.
...
если вы собираетесь работать над проектом, в котором можно поэкспериментировать и которому не нужна поддержка устарелых браузеров, я вам настоятельно рекомендую сделать шаг вперед и сказать прощай JQuery уже сегодня. Вы создадите намного более легкое, быстрое приложение, а также узнаете много нового.
Автор: Patrick Kunka
https://scorcher[dot]ru/mirovozzreni[dot][dot][dot]_byez_jquery.php
DlTA
Отправлено: 24 Ноября, 2020 - 12:38:11
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
продолжение: нужно дописать
Спойлер (Отобразить )
CODE (
javascript ):
скопировать код в буфер обмена
//...
errors: function ( ) {
var errorClass = this .settings .errorClass .split ( " " ) .join ( "." ) ;
return $( this .settings .errorElement + "." + errorClass, this .errorContext ) ;
} ,
//...
заменить на:
Спойлер (Отобразить )
CODE (
javascript ):
скопировать код в буфер обмена
//...
errors: function ( ) {
var errorClass = this .settings .errorClass .split ( " " ) .join ( "." ) ;
var formId = $( this .errorContext ) .attr ( 'id' ) ;
if ( formId!== undefined) {
return $( this .settings .errorElement + "." + errorClass, this .errorContext ) .add ( '[form=' + formId+ ']+label' )
}
return $( this .settings .errorElement + "." + errorClass, this .errorContext ) ;
} ,
//...
и все, эта ... работает))(Отредактировано автором: 24 Ноября, 2020 - 12:39:25)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« JavaScript & VBScript »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB