#jquery #jquery-validate
#jquery ( jquery ) #jquery-проверка
Вопрос:
Использование проверки jquery с помощью remote для одного из полей. Как мне отправить на сервер данные о том, что пользователь ввел в это поле?
rules: {
"profile.userId": {
required: true,
minlength: 8,
remote: {
url: "/checkUniqueUserId",
dataType: "json",
type: "POST",
data: {userId : '???'}
}
}
Как мне извлечь введенное значение из поля ввода? Я уже пробовал:
$("#userId").val()
userId
profile.userId
$(this).val()
Есть какие-нибудь предложения?
Это есть в моем jsp:
<div class="control-group">
<div class="form-group has-success has-feedback">
<form:input type="text" id="userId" name="userId" class="form-control"
path="profile.userId" placeholder="user name"/>
</div>
</div>
Комментарии:
1. Можете ли вы показать HTML-код, в котором присутствует идентификатор?
2. Вам нужно опубликовать больше вашего кода.
3. Вам не нужно ничего делать. Значение поля уже автоматически отправляется с
remote
правилом.4. Вместо того, чтобы показывать необработанный jsp, пожалуйста, показывайте только отображаемый HTML-код, который отображается в исходном коде браузера.
Ответ №1:
Цитата OP:
«Как мне отправить на сервер данные о том, что пользователь ввел в поле?»
Вы этого не делаете, потому что это уже отправлено по умолчанию.
Ваш код…
rules: {
"profile.userId": { // <- this MUST be the 'name' attribute of the input
required: true,
minlength: 8,
remote: {
url: "/checkUniqueUserId",
// dataType: "json", // <- not needed, default
type: "POST",
// data: {userId : '???'} // <- not needed
}
}
}
Если вам просто нужно значение вашего profile.userId
поля, вам не нужно ничего делать. Это точные данные, уже отправленные по умолчанию.
Используя PHP в качестве примера, к нему просто обращаются на стороне сервера с $_POST
помощью массива as $_POST['profile.userId']
. (Это предполагает, что отображаемый <input>
элемент содержит name="profile.userId"
атрибут, в противном случае ничего из этого не будет работать.)
Вы будете использовать эту data
опцию только в том случае, если вам нужно отправить дополнительные данные в удаленный скрипт. Например, чтобы отправить адрес электронной почты вместе с идентификатором пользователя.
Комментарии:
1. да, это происходит по умолчанию, мне просто нужно было изменить параметр на моем сервере, чтобы он соответствовал. Работает! Спасибо.
Ответ №2:
В примере somecase: edit email user вы можете использовать данные:{}
rules: {
txt_email: {
required: true,
email: true,
remote: {
url : "emailcheck.php",
type : "POST",
data: {type:'edit',old_email:$( "#old_email" ).val()}
}
}
}
в emailcheck.php ручка
if($_POST['type'] == "edit") {
// your business code
}
Комментарии:
1. Удивительно, большое вам спасибо, ваш ответ почти спас мой день 🙂