0

不要な必須フィールド (件名) を含む小さな jQuery メーラー スクリプトをインストールしましたが、それを削除したいと考えています。最初に、検証を忘れてhtmlを削除しただけでエラーが発生しました。次に、サブジェクト (a <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();
    })

});

上記のコードで示されている領域を削除しようとしました。スクリプトには「あなたは人間ですか」という単純な数学関数があり、コードを削除した後、単純な数学の答えが正しいにもかかわらず間違っているという警告が表示されました。

4

1 に答える 1

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");

送信コードを投稿すると、おそらくもっとお手伝いできます。

于 2012-07-27T12:11:18.633 に答える