修改jQuery脚本以删除一个函数(不破坏它...)

时间:2012-04-15 14:33:52

标签: jquery html

我安装了一个很好的小jQuery邮件程序脚本,其中包含我不想要的必填字段(主题),并希望将其删除。首先,我只是删除了html,忘记了验证并得到了错误。然后我尝试删除脚本的一部分,该部分验证是否选择了主题(<select>),但是出现了错误,现在正在寻求帮助。这是脚本:

HTML:

<form id="contact-form" name="contact-form" method="post" action="submit.php">
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <tr>
          <td width="25%" style="text-align:right;"><label for="name">Name</label></td>
          <td width="65%" style="text-align:left;"><input type="text" class="validate[required,custom[onlyLetter]]" name="name" id="name" value="<?=$_SESSION['post']['name']?>" /></td>
          <td width="10%" id="errOffset" style="text-align:right;">&nbsp;</td>
        </tr>
        <tr>
          <td style="text-align:right;"><label for="email">Email</label></td>
          <td><input type="text" class="validate[required,custom[email]]" name="email" id="email" value="<?=$_SESSION['post']['email']?>" /></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><label for="subject">Subject</label></td>
          <td><select name="subject" id="subject">
            <option value="" selected="selected"> - Choose -</option>
            <option value="Question">Question</option>
            <option value="Business proposal">Business proposal</option>
            <option value="Advertisement">Advertising</option>
            <option value="Complaint">Complaint</option>
          </select>          </td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td valign="top" style="text-align:right;"><label for="message">Message</label></td>
          <td><textarea name="message" id="message" class="validate[required]" cols="35" rows="5"><?=$_SESSION['post']['message']?></textarea></td>
          <td valign="top">&nbsp;</td>
        </tr>
        <tr>
          <td><label for="captcha"><?=$_SESSION['n1']?> + <?=$_SESSION['n2']?> =</label></td>
          <td><input type="text" class="validate[required,custom[onlyNumber]]" name="captcha" id="captcha" /></td>
          <td valign="top">&nbsp;</td>
        </tr>
        <tr>
          <td valign="top">&nbsp;</td>
          <td colspan="2"><input type="submit" name="button" id="button" value="Submit" />
          <input type="reset" name="button2" id="button2" value="Reset" />

          <?=$str?>          <img id="loading" src="img/ajax-load.gif" width="16" height="16" alt="loading" /></td>
        </tr>
      </table>
      </form>

我要删除“主题”验证功能的脚本:

   $(document).ready(function(){
    $('#contact-form').jqTransform();

    $("button").click(function(){

        $(".formError").hide();

    });

    var use_ajax=true;
    $.validationEngine.settings={};

    $("#contact-form").validationEngine({
        inlineValidation: false,
        promptPosition: "centerRight",
        success :  function(){use_ajax=true},
        failure : function(){use_ajax=false;}
     })

    $("#contact-form").submit(function(e){

        if(!$('#subject').val().length)
            {
            $.validationEngine.buildPrompt(".jqTransformSelectWrapper","* This field is required","error")
            return false;
        }

            if(use_ajax)
            {
                $('#loading').css('visibility','visible');
                $.post('submit.php',$(this).serialize()+'&ajax=1',

                    function(data){
                        if(parseInt(data)==-1)
                            $.validationEngine.buildPrompt("#captcha","* Wrong verification number!","error");

                        else
                        {
                            $("#contact-form").hide('slow').after('<h1>Thank you!</h1>');
                        }

                        $('#loading').css('visibility','hidden');
                    }

                );
            }
            e.preventDefault();
    })

});

我尝试删除上面代码中指明的区域。该脚本有一个'你是人类'的简单数学函数,在删除代码后,我得到一个警告,说明简单数学的答案是错误的,尽管它是正确的。

1 个答案:

答案 0 :(得分:0)

根据您在此处显示的内容,您需要做的就是删除主题测试的代码块:

if(!$('#subject').val().length) {
    $.validationEngine.buildPrompt(".jqTransformSelectWrapper","* This field is required","error")
    return false;
}

如果您在执行此操作后收到错误,可能是因为服务器端有更多验证。没有您的submit.php文件,我们就无法知道。但是你的问题似乎是文件正在返回data: -1并且被这个块抓住了:

function(data) {
    if (parseInt(data) == -1)
        $.validationEngine.buildPrompt("#captcha","* Wrong verification number!","error");

如果您发布提交代码,我们可能会为您提供更多帮助。