使用JQuery检查表单提交时的默认值

时间:2010-08-04 06:33:00

标签: jquery html forms

如果字段输入具有默认值,我正在尝试使用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 个答案:

答案 0 :(得分:2)

提交其他部分的表格后退真实不是回答第一个问题`

提交表单: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:

将字符串值存储在变量中,并使用===语法进行相等操作,如果不是else,则使用其他值,因此更新后的脚本为

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');
  }
 });

答案 1 :(得分:0)

使用jQuery,你可以像这样设置一个表单值:

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

但是如果你想获取值,比如根据值检查它,你可以使用没有参数的val()函数,如下所示:

if ( $('#topic').val() == 'at least one topic, separated by commas' ) {
    ...
}