Я пытаюсь использовать плагин проверки JQuery для смены имени пользователя. Мне удалось использовать удаленную опцию, чтобы проверить, найдено ли имя пользователя в моей базе данных. Ниже мой рабочий пример. Однако, если Питер из примера формы не меняет свое имя, поле является недействительным, потому что имя уже находится в базе данных. Мне как-то нужно включить условие - если #new_name совпадает с #current_name, поле #new_name является действительным. Возможно ли это?
Плагин проверки jQuery
<script type="text/javascript">
$(document).ready(function(){
$("form").validate({
rules: {
new_name: {
required: true,
remote: {
url: "names.php",
type: "post",
}
}
},
messages: {
new_name: {
remote: jQuery.validator.format("{0} is already taken, please enter a different name.")
}
}
});
});
</script>
HTML-форма:
<form method="post" id="myForm" action="">
<!-- User enters a new name -->
<input id="new_name" name="new_name" value="peter" type="text" />
<!-- This is a current username, populated from the database -->
<input id="current_name" name="current_name" value="peter" readonly="readonly" />
<input type="submit" name="submit" id="submit"/>
</form>
Удаленный вызов: names.php
<?php
$request = trim(strtolower($_REQUEST['new_name']));
// Here is the array of all user names in my database.
$names = array('peter','jane','bill','george');
$valid = 'true';
foreach($names as $name) {
if( strtolower($name) == $request ) {
$valid = 'false';
}
}
echo $valid;
?>