在客户端验证我的字段并尝试为字段旁边的每个字段显示警告不是问题:
<div class="formblock">
<label class="screen-reader-text">Email</label>
<input type="text" name="email" {if $smarty.session.email} value={$smarty.session.email} disabled {/if} id="email" class="txt requiredField email" placeholder="Email:"/>
</div>
<div class="formblock">
<label class="screen-reader-text">Message</label>
<textarea name="comments" id="commentsText" class="txtarea requiredField" placeholder="Message:"></textarea>
</div>
例如,要检查它们是否为空,我只需使用 .each 并检查每个字段并在其span
旁边附加一个。
$('.requiredField').each(function () {
if ($.trim($(this).val()) == '') {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">You forgot to enter a ' + labelText + '.</span>');
$(this).addClass('inputError');
hasError = true;
}
});
但是在服务器端,我通常做的事情是对每个字段执行验证,然后将错误消息附加为 var ($ERRORTEXT
在这种情况下),然后在最后执行回显,并在 ajax 成功后显示在顶部形式。
$ERRORTEXT .= " <li> Name has to contain more than two characters </li> ";
if ($error)
{
echo $ERRORTEXT;
}
如何按字段执行此操作(类似于我在客户端执行的操作)并将其返回到它们旁边的跨度?我假设不是用 echo 返回一个 var,我可能不得不返回一个 json 结果然后处理这个?