不要な必須フィールド (件名) を含む小さな 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;"> </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> </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> </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"> </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"> </td>
</tr>
<tr>
<td valign="top"> </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();
})
});
上記のコードで示されている領域を削除しようとしました。スクリプトには「あなたは人間ですか」という単純な数学関数があり、コードを削除した後、単純な数学の答えが正しいにもかかわらず間違っているという警告が表示されました。