Ich akzeptiere kein HTML in meiner PHP-Anwendung, also beabsichtige ich, alles zu blockieren, das mit HTML-Tags eingereicht wird. Ich habe versucht, das folgende JavaScript hinzuzufügen, um zusätzliche jQuery Validate-Regeln für alle Texteingabefelder hinzuzufügen.jQuery Validieren Sie alle Felder aus der Ferne
Ich benutze WordPress Ajax so Aktion und URL werden zusammen eingereicht.
$('input[type="text"]').each(function() {
$(this).rules('add', {
remote: {
url: ajaxurl,
type: 'POST',
data: {
action: 'ad_sanitize',
}
}
});
});
Die oben js gibt Fehler in Firefox Konsole
TypeError: a.data(...) is undefined ...ar d,e,f,g,h,i,j=this[0] if(b)switch(d=a.data(j.form,"validator").settings,e=d.r... in Jquery,js
$('#formname').validate({
rules: {
field1: 'required',
field2: 'required',
},
message: {
field1: 'Required',
field2: 'Required'
}
submitHandler: function (form) {
console.log('done');
});
Die obige Aktion auf die folgende Funktion server Punkt
function isHtml($string) //This function just checks for html
{
if ($string != strip_tags($string))
{
return true; // Contains HTML
}
return false; // Does not contain HTML
}
function ad_sanitize() { //<- This function calls when ajax call (Tested)
foreach ($_POST as $key => $value) {
if (isHtml($value) === true) {
echo 'Only plain text allowed.';
} else {
echo true;
}
}
}
Problem: Als ich fügte der über JavaScript, mein jQuery Validate funktioniert nicht anno re (Formular ohne Validierung), und natürlich wird die Fernprüfung nicht aufgerufen.
Achten Sie auf Ihre Fehler JavaScript-Konsole. – Sparky