EDIT2 unterschiedlich sein müssen:jQuery Validierung einige Eingabe von einander
Ich fühle mich in der Nähe der Lösung bin. Im Anschluss an den Vorschlag des vicgoyso habe ich einen Gegenstand aus meiner Eingänge (und nicht Arrays), und dann verglich ich sie: see the jsfiddle
Da dieser Vergleich funktioniert: comparison on jsfiddle Ich würde der Code erwarten oben als auch zu arbeiten, aber es ist nicht.
EDIT: Die jQuery-Methode Ich arbeitete an ist ähnlich wie diese:
$().ready(function(){
$.validator.addMethod("same_names", function(value, element) {
if (!$('#surname').val() || $('#surname').val() != null
&& !$('#surname1').val() || $('#surname1').val() != null){
return $('#name').val() != $('#name1').val()
&& $('#surname').val() != $('#surname1').val()
&& $('#nickname').val() != $('#nickname1').val()
}
}, " Your input is equal to another");
$("#myForm").validate({
rules: {
name: {
required: false,
same_names: true
},
name1: {
required: false,
same_names: true
},
surname: {
required: false,
same_names: true
},
surname1: {
required: false,
same_names: true
},
nickname: {
required: false,
same_names: true
},
nickname1: {
required: false,
same_names: true
},
},
messages: {
...
}
})
});
Es weiterhin sagen, dass Name, Vorname und Spitznamen erforderlich sind, und sie sind es nicht. Ohne jQuery meine Methode zu diesem ähnlich ist:
$('#myForm').submit(function (event) {
var errors = false;
if ($('#name').val() == $('#name1').val() &&
$('#surname').val() == $('#surname1').val() &&
$('#nickname').val() == $('#nickname1').val()
||
$('#name').val() == $('#name2').val() &&
$('#surname').val() == $('#surname2').val() &&
$('#nickname').val() == $('#nickname2').val()
||
$('#name').val() == $('#name3').val() &&
$('#surname').val() == $('#surname3').val() &&
$('#nickname').val() == $('#nickname3').val()
||
$('#name').val() == $('#name4').val() &&
$('#surname').val() == $('#surname4').val() &&
$('#nickname').val() == $('#nickname4').val()
....
||
$('#name').val() == $('#name10').val() &&
$('#surname').val() == $('#surname10').val() &&
$('#nickname').val() == $('#nickname10').val()
||
$('#name1').val() == $('#name2').val() &&
$('#surname1').val() == $('#surname2').val() &&
$('#nickname1').val() == $('#nickname2').val()
||
$('#name1').val() == $('#name3').val() &&
$('#surname1').val() == $('#surname3').val() &&
$('#nickname1').val() == $('#nickname3').val()
.... and so on
) {
$("#error").show();
location.href = "#";
location.href = "#error";
errors = true;
} else {
errors = false;
$("#error").hide();
}
if (errors == true) {
event.preventDefault();
}
});
Meine eigentliche jsp ist ähnlich wie diese (es 10 Eingangsgruppen sind mit Namen + Nachname + Spitznamen gebildet):
<form id="myForm" method="post">
<input id="name" name="name" />
<input id="surname" name="surname" />
<input id="nickname" name="nickname" />
<br/ >
<input id="name1" name="name1" />
<input id="surname1" name="surname1" />
<input id="nickname1" name="nickname1" />
<br/>
<input id="name2" name="name2" />
<input id="surname2" name="surname2" />
<input id="nickname2" name="nickname2" />
<br />
<input id="name3" name="name3" />
<input id="surname3" name="surname3" />
<input id="nickname3" name="nickname3" />
<br />
<br />
<input id="submit" type="submit" value="submit" />
</form>
Ich möchte ein Fehler, nur wenn man diese Gruppe (Name, Vorname, Nickname) auf einem anderen gleich ist, beispielsweise ist dies ein Fehler:
- John
- Smith
- Prinz *
- John
- Smith
- Prinz *
- John
- Smith
- Schneemann
Aber dieses ist nicht:
- John
- Smith
- Prinzmindestens ein Feld verschieden ist, so dass der Eingang
- John
- Smith
- Schneemann * mindestens ein Feld unterschiedlich fein ist, so ist die Eingabe in Ordnung
- John
- Smith
- Feuerkugel mindestens ein Feld verschieden ist, so dass der Eingang
FRAG fein Was passiert, wenn ich will diesen Code verwenden:
https://stackoverflow.com/a/16965721/4477899
zu löse dieses Problem hier:
Form validate some input must be different from each other
Ich frage, weil ich jQuery validate bereits verwende, und die vorherige Methode funktioniert nicht gut, wenn Felder mehr als zwei Gruppen sind oder leer sind (diese Felder sind nicht erforderlich).
Bitte zeigen Sie uns Code, mit dem Sie bisher experimentiert haben. Ein minimales, vollständiges und überprüfbares Beispiel sollte ausreichen. – wiredolphin