2017-04-25 6 views
1

私のJavascriptでは、ユーザーの入力を検証しようとしています。Jqueryを介した入力ボックスの正しい検証。

<div class=" row validate" style="display:none;"> 
     <div class="col-lg-1"></div> 
     <div class="col-lg-7"><p class="validation_text"></p></div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-1 col-sm-0 col-xs-12"></div> 
     <div class="col-lg-3 col-sm-3 col-xs-12"><a href="#" data- 
    toggle="tooltip" data-placement=" auto top" title="Text">Information</a></div> 
     <div class="col-lg-2 col-sm-2 col-xs-12"><input id="xy" name="xy" 
    type="search" class="form-control" maxlength="2" onChange="validate(this);"> 
    </div> 
</div> 

: は私が見ることができます方法(の.html()経由でテキストを定義する)クラス名 "XY"

私のHTML-ファイルを使用した(上段)に最も近い要素がこのように見えますがありますと私のJSファイルで:

function validate(){ 
var regex = new RegExp(/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?()]/); 
var box = ['xy','xyyy]; 
    var element; 

element = document.getElementById(box[i]); 

for (i=0; i < box.length; i++){ 

    if(regex.test(element.value)){ 
     $(element).parent().parent().prev().show(); 
     element.style.border = '2px solid red'; 
$(".validation_text").eq([i]).html("your input contains regex"); 
} 
} 
    } 

すべてがうまくいけば、唯一の問題は最後の部分です。 validation_textは表示されません。なぜ誰が知っていますか?

+2

'.EQ([i])とする必要があり、それを与えている。'なぜブラケット? – epascarello

+0

'var box = ['xy'、 'xyyy];'行をチェックしましたか?不足しているのは誤植ですか、忘れられていますか? – reporter

+0

'eq'を正しく読んでいますか? "あなたが指摘しているインデックス 'i'の新しい配列である 'validation_text'クラスの要素を私に渡していますか? – Nate

答えて

5

当量()、整数を期待して、あなたは、配列

$(".validation_text").eq([i]) 

$(".validation_text").eq(i) 
関連する問題