jQuery valider Uncaught TypeError: Cannot read property 'nodeName', null
J'ai le code suivant:
$(document).ready
(
function ()
{
$.validator.addMethod(
"lessThan",
function (value, element, param)
{
//bind to the blur event of the target in order to revalidate whenever the target field is updated
var target = $(param)
.unbind(".validate-lessThan")
.bind
(
"blur.validate-lessThan",
function ()
{
$(element).valid();
}
);
return parseFloat(value) <= parseFloat(target.val());
},
"Valoarea trebuie sa fie mai mica sau egala decat valoarea initiala"
);
}
);
$('#gvListDetaliiElemTranAdaugare input[name$=Valoare]').each
(
function (index, domEle)
{
$(this).rules
(
"add"
, {
required: true,
minlength: 1,
range: [0.1, Number.MAX_VALUE],
lessThan: '#ListaDetaliiElemTranModelAdaugare_' + index + '__ValoareRamasa',
messages:
{
required: "Valoarea este necesara!",
minlength: "Valoarea este necesara!",
range: "Valoarea este necesara!",
lessThan: "Valoarea trebuie sa fie mai mica sau egala cu " + $('#ListaDetaliiElemTranModelAdaugare_' + index + '__ValoareRamasa').val()
}
}
);
}
);
Le code ne fonctionne pas, alors il reeaches $(this).règles() avec: Uncaught TypeError: Cannot read property 'nodeName' of null
.
le code html renvoyé par $('#gvListDetaliiElemTranAdaugare input[name$=Valoare]')
est:
[
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_0__Valoare" name="ListaDetaliiElemTranModelAdaugare[0].Valoare" onchange="OnValoareChange($(this).val(), 18590 , 0)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_1__Valoare" name="ListaDetaliiElemTranModelAdaugare[1].Valoare" onchange="OnValoareChange($(this).val(), 22972 , 1)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_2__Valoare" name="ListaDetaliiElemTranModelAdaugare[2].Valoare" onchange="OnValoareChange($(this).val(), 23036 , 2)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_3__Valoare" name="ListaDetaliiElemTranModelAdaugare[3].Valoare" onchange="OnValoareChange($(this).val(), 23038 , 3)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_4__Valoare" name="ListaDetaliiElemTranModelAdaugare[4].Valoare" onchange="OnValoareChange($(this).val(), 425306 , 4)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_5__Valoare" name="ListaDetaliiElemTranModelAdaugare[5].Valoare" onchange="OnValoareChange($(this).val(), 425308 , 5)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_6__Valoare" name="ListaDetaliiElemTranModelAdaugare[6].Valoare" onchange="OnValoareChange($(this).val(), 425309 , 6)" type="text" value="0.00000000000">
<input data-type="decimal" id="ListaDetaliiElemTranModelAdaugare_7__Valoare" name="ListaDetaliiElemTranModelAdaugare[7].Valoare" onchange="OnValoareChange($(this).val(), 425310 , 7)" type="text" value="0.00000000000">
]
- pourquoi vous ne sont pas seulement ajouter de la validation de la fonction avec ses règles propriétés en json ?
- parce que j'ai besoin d'un exemple
- cochez cette page jquery.bassistance.de/validate/demo
- Je n'ai pas trouver quelque chose d'utile là
- ce que vous essayez de faire exactement?
- Je suis en train d'ajouter la validation d'un ensemble de lignes de la grille. Mais j'ai trouvé mon problème. Je vous remercie pour votre temps et votre attention.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème.
Le problème est que le HTML, j'ai essayé de valider n'était pas contenue dans un
<form>...</form>
tag.Dès que je l'ai fait, j'ai eu un
context
qui n'était pas nulle.elem null
sur cette jQuery ligne:f ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 )
Le problème est arrivé parce que j'ai essayé de lier un élément HTML avant il a été créé.
Mon script a été chargé sur le dessus de l'HTML et il doit être chargé dans le fond de mon code HTML.
J'ai eu ce problème dans un projet Backbone: mon point de vue contient une entrée et un nouveau rendu.
Voici ce qui se passe (exemple pour une case à cocher):
La solution est de mettre à jour l'entrée plutôt que de re-rendre complètement. Voici une idée de la mise en œuvre:
De cette façon, vous n'avez pas à modifier le code existant appel render(), assurez-vous simplement que la mise à jour() garde votre code HTML dans la synchronisation et vous êtes bon pour aller.
J'ai trouvé cette réponse quand j'ai été une erreur similaire pour
nodeName
après la mise à niveau de Bootstrap 4. Le problème est que les onglets n'ont pas lenav
etnav-tab
classes; l'ajout de ceux de la<ul>
élément fixe de la question.<ul>
, donc l'applicationclass="nav nav-tabs"
à un élément parent suffit. Mais il est certainement un Bootstrap 4 problème. Bootstrap 3 était très bien sans.J'ai eu ce problème et c'était parce que le panneau était en dehors de la [data-role="page"] élément.
Extrait de l'oficial docs:
Exige que le parent formulaire est validé, soit $( "form" ).valider() est appelée en premier
plus sur... les règles