2

Chosen プラグインの選択フォームの検証に成功しました。ただし、エラーの配置を変更する際に問題が発生しています。常に要素の上に表示されます。

これが私のコードです:

<script>
$('#form-scriptolution-soft-post-image').on('submit', function() {$('.chzn-done').valid();
});
</script>

<div class="field">
<label>
<h4>{$lang260}<span> *</span></h4>                        
</label>
<select name="CID" id="CID" required style="width:389px; height: 30px;" data-    placeholder="Choose..." >
<option value=""></option>
{section name=i loop=$c}                  
<option value="{$c[i].CID}">{$c[i].cname}</option>
{/section}
</select>                        
<p class="info">some text</p>
</div>

エラーを

「何らかのテキスト」の場所にある要素

私は他のすべてのフォーム要素で動作する次のものを使用しようとしています:

errorElement: 'p',
errorClass: 'error',
errorContainer: ".field p"

どんなアイデアでも大歓迎です

問題を解決できました。私のコードが今どのように見えるかは次のとおりです。

<script type="text/javascript"> 
$(document).ready(function(){

$('#form-scriptolution-soft-post-image').validate(
{
ignore: "",
rules: {
image: {
required: true
},
CID: {
required: true
},
title: {
required: true
},
tags: {
required: true
},
},
errorPlacement: function (error, element) {
$('.field p').html(error);

},
});
});
jQuery.extend(jQuery.validator.messages, {
required: "This is a required field.",
});
// end document.ready
</script> 

<div class="field">
<label>
<h4>{$lang260}<span> *</span></h4>                        
</label>
<select name="CID" id="CID" required style="width:389px; height: 30px;" data-       placeholder="Choose..." >
<option value=""></option>
{section name=i loop=$c}                  
<option value="{$c[i].CID}">{$c[i].cname}</option>
{/section}
</select>                        
<p class="info">some text</p>
</div>

私がしたことignore: "",は、検証プラグインが隠しフィールドを無視しないように検証コードを追加することでした。Chosen プラグインは、実際にはデフォルトの選択フィールドを非表示にします。次のオプションpを追加することで、要素 Iの場所でエラーを出力できました。errorPlacement

errorPlacement: function (error, element) {
$('.field p').html(error);

すべてが期待どおりに機能するようになりました。ありがとう!

4

2 に答える 2

0

結果をテストしvalid()、JQuery セレクターを使用してテキストを自分で変更するだけです。

<script>
  $('#form-scriptolution-soft-post-image').on('submit', function() {
    if(!$('.chzn-done').valid()){
      $('.field p').html('You must select a choice!');
      return false;
    } else {
      return true;
    }
  });
</script>
于 2012-11-13T11:40:53.397 に答える