Проверьте значение по умолчанию при отправке формы с JQuery - PullRequest
0 голосов
/ 04 августа 2010

Я пытаюсь использовать JQuery для проверки при отправке, имеет ли поле ввода значение по умолчанию, и, если он есть, остановить отправку и предупредить пользователя. То, что у меня есть, работает до определенного момента. Но что бы я ни указывал в поле ввода, отправка останавливается, и текст заменяется текстом предупреждения.

Вот JQuery:

$('#submitQuestion').submit(function() {
if($('#topic').val('at least one topic, separated by commas')
{
   $('#topic').removeClass('inactive');
   $('#topic').addClass('notice');
   $('#topic').val('Please include at least one topic');
   return false;
}
return false;
});

Другая проблема, с которой я сталкиваюсь, заключается в удалении текста по умолчанию после его изменения, чтобы уведомить пользователя. Прямо сейчас у меня есть только строки вместо переменных, и по какой-то причине это работает (частично), только если я использую '==' в определенных местах. Прямо сейчас работает первое условие if в функции фокуса, но не условие elseif. В настоящее время у меня есть этот код:

$('#topic').focus(function(){
  if(this.value=='at least one topic, separated by commas')
  {
$(this).val(' ');
  } elseif(this.value=='Please include at least one topic')
  {
$(this).val(' ');
$(this).removeClass('notice');
  }
 });

 $('#topic').blur(function(){
   if(this.value==' ')
   {
   $(this).val('at least one topic, separated by commas');
   $(this).addClass('inactive');
   }
 });

Очевидно, мое мастерство в JQuery, ну, не таково. Но я ценю любую помощь.

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

Чтобы отправить форму в else part retrun true не false Ответ на первый вопрос `

отправить форму: http://api.jquery.com/submit/

$('#submitQuestion').submit(function() {
if($('#topic').val('at least one topic, separated by commas')
{
   $('#topic').removeClass('inactive');
   $('#topic').addClass('notice');
   $('#topic').val('Please include at least one topic');
   return false;
}
else
 return true;
});

Ответ 2:

сохраняет строковые значения в переменной и использует синтаксис === для одинаковой операции, а в противном случае - иначе, если обновленный скрипт имеет значение

var defaultTextFocus = 'at least one topic, separated by commas';
var defaultTextVal = 'Please include at least one topic';
$('#topic').focus(function(){
  if(this.value=== defaultText)
  {
     $('#' +this.id).val(' ');
  } else if(this.value=== defaultTextVal)
  {
     $('#' +this.id).val(' ');
     $('#' +this.id).removeClass('notice');
  }
 });
0 голосов
/ 04 августа 2010

С помощью jQuery вы устанавливаете значение формы примерно так:

$('#topic').val('text here')

Но если вы хотите получить значение, например, чтобы сравнить его со значением, вы бы использовали функцию val () без параметров, например:

if ( $('#topic').val() == 'at least one topic, separated by commas' ) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...