2016-04-11 16 views
1

以下のブートストラップをドロップダウン・ピッカーとして使用しています。関連するjQuery関数を使用すると、inputtype="text"の選択フィールドが表示されます。しかし、ユーザーは自分自身を入力フィールドに書き込むことはできますが、これは避けたいものです。入力フィールドにdisabled属性を使用してみましたが、jQuery Validateプラグインはそれを無視し、空の場合でも許可を与えます。jQuery入力フィールドの検証と無効化

disabled属性を使用せずに、入力フィールドをtype="text"で「非アクティブ化」することができます。これにより、jQuery Validateを引き続き使用することができます。

<div class="form-group"> 
    <div class="input-group"> 
     <div class="input-group-btn"> 
       <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Choose<span class="caret"></span></button> 
       <ul class="dropdown-menu"> 
        <li><a href="#" id="a">1</a></li> 
        <li><a href="#" id="b">2</a></li> 
        <li><a href="#" id="c">3</a></li> 
        <li><a href="#" id="d">4</a></li> 
        <li role="separator" class="divider"></li> 
        <li><a href="#" id="e">5</a></li> 
       </ul> 
     </div> 
     <input type="text" id="abc" autocomplete="off" name="abc" placeholder="Select *" class="form-control" aria-label="..."> 
    </div> 
</div> 
+0

関連するJavaScriptはどこですか? – Sparky

答えて

5

は直接的な解決策はありません...フィールドがdisabled属性を経由して「無効」である場合には、jQueryの検証プラグインは、常にそれを無視するを使用する必要があるように思えます。 (論理的には、ユーザーが編集できないものを検証することはできません)。 disabledの代わりにreadonly属性を使用すると、それを検証できます。

<input type="text" name="abc" readonly="readonly" /> 

DEMO:http://jsfiddle.net/85pu1oe5/

0

どんなにこの質問はOD - 非常に簡単である回避策があります。 jquery.validate.jsによって無視される無効なフィールドに、隠しフィールドを追加して使用しないでください。

<input type="text" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>" disabled> 
<input type="hidden" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>"> 

私にとってはうまく機能します。同じです。

<select style="display:none;"><option value="sample">Sample</option></select> 

ディスプレイ:なし;要素を完全に隠す(スペースとすべて)。これは引き続き有効になっており、そのデータは引き続き送信されます。試してみてください。

ignore: ".ignore"がすべての非表示フィールドを有効にするため、validate.jsに追加されていることを確認してください。

関連する問題