如何在输入中禁用发送和显示消息以完成

时间:2012-09-06 23:00:36

标签: jquery forms

如何使用jQuery显示表单消息并禁用表单提交?

我想在文本输入字段中显示带有jQuery的in-form消息,这些字段是在填写字段之前提交和禁用提交按钮所必需的。

我的简单问题是:

如果输入字段为空,我想显示错误消息并禁用提交按钮。如果输入字段为空,我想在输入字段附近显示空白且需要填写的消息。

我试过

$("#CustomerForm").validate({
  rules: {
    FirstNameEdit: { required: true },
    LastNameEdit: { required: true },
    EmailEdit: { required: true, email:true }
  }
});

但它不起作用。

<script type="text/javascript">
$.fx.speeds._default = 650;
$(function() {
  $('.massgejava').dialog({
    autoOpen: false,
    show: 'explode',
    hide: 'explode',
    title: 'راسلنا',
    width: 380
  });
  $('#javamassge').click(function() {
    $(".massgejava").dialog('open');
    return false;
  });
  $('input#registerjquery').click(function() {
    $(".massgejava").dialog("close");
  });
});
</script>

<form action="form.php" method="post">
  <input name="name" 
         type="text" 
         value="اسمك الكريم" 
         onblur="if (this.value == '') this.value = 'اسمك الكريم'" 
         onclick="value=''" />
  <input name="email" 
         type="text" 
         value="البريد الالكتروني" />
  <input name="phone" 
         type="text" 
         value="رقم الهاتف" 
         onblur="if (this.value == '') this.value = 'رقم الهاتف'" 
         onclick="value=''" />
  <textarea name="msg" 
            cols="41" 
            rows="5" 
            placeholder = "نص الرساله" 
            wrap="soft"></textarea>
  <input type="submit" value="ارسال" />
</form>

建议?

1 个答案:

答案 0 :(得分:1)

带有一些附加ID的表单:

<form action="form.php" method="post" id="CustomerForm">
    <input name="name" type="text" value="اسمك الكريم" onblur="if (this.value=='')this.value='اسمك الكريم'" onclick="value=''" />
    <br />
    <input name="email" type="text" value="البريد الالكتروني" />
    <br />
    <input name="phone" type="text" value="رقم الهاتف" onblur="if (this.value=='')this.value='رقم الهاتف'" onclick="value=''" />
    <br />
    <textarea name="msg" id="msg" cols="41" rows="5" placeholder="نص الرساله" wrap=soft></textarea>
    <br />
    <input type="submit" id="submit" value="ارسال" />
</form>

JQuery的:

function kontrolaMailu(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}

function checkName(name){
var pattern = new RegExp(/^([a-z]+) ([a-z]+)$/);
return pattern.test(name);
}

function formControl(){
var error=0;
var errorTXT='';
var inputs = $("#CustomerForm input ");
$.each(inputs, function(key, value) {
    if(value["name"]=='name'){
        if(value['value']!='' && error==0){
            if(checkName(value['value'])){
                error=0;
                }
                else{
                    error=1;
                    errorTXT='your error msg text for name input when there arent two words';
                    return false;
                }
        }
        else{
            error=1;
            errorTXT='your error msg text for empty name field';
            return false;
            }
        }
     if(value["name"]=='email'){
        if(value['value']!='' && error==0){
            if(kontrolaMailu(value['value'])){
                error=0;
                }
                else{
                    error=1;
                    errorTXT='your error msg text for wrong mail format';
                    return false;
                }

        }
        else{
            error=1;
            errorTXT='your error msg text for empty mail';
            return false;
            }
        }
}

     if(error != 0){
      $('#submit').attr('title',errorTXT);
      $('#submit').attr('disabled', 'disabled');
      $('#submit').addClass('disabled');//css class for disabled button
      $('#msg').val(errorTXT);
     }
     else{
      $('#submit').removeAttr('title');
      $('#submit').removeAttr('disabled');
      $('#submit').removeClass('disabled');//css class for disabled button
      $('#msg').val('');
     }
}

如果像value ='اسمكالكريم'这样的值会传递那些RegExps,我就不会感到害羞因为我从来没有用过不同的字符集来工作