2011-08-04 15 views
1

jquery関数とjavascript検証スクリプトがマイページのフォームで実行されています。入力IDのJavascript検証

1つの形式では、入力IDは「。」で動的に生成されます。 - これは問題を引き起こし、機能を破っているようです。

明らかに回避できますか?

機能:

function customAlert(){ 
    var args = arguments; 
    if(args.length > 1) { 
     // check that custom alert was called with at least two arguments 
     var msg = args[0]; 
    $(".giftmessaging").removeClass("alertRed"); 
     $("li").removeClass("alertRed"); 
     $("input").removeClass("CO_form_alert"); 
     $("select").removeClass("CO_form_alert"); 
     var div = $(".errorPopup"); 
     div.css({"display":"block"}); 

     div.html(msg); 
     for(var i = 1; i < args.length; i++) { 
      var inputID = args[i]; 
      $("#"+inputID).addClass("CO_form_alert"); 
     $(".giftmessaging").addClass("alertRed"); 
     $('#' + inputID).focus(); 
     $('#' + inputID).keydown(function() { $('.errorPopup').hide(); }).change(function() { $('.errorPopup').hide(); }); 

     } 
    } 

} 

例の検証セクション:

couponAlert(msg_601,"frmCPN.Number_1") 

と生成されたIDの例:

input title="Coupon <%=i%> Coupon Number" type="text" class="CO_PM_VisaCouponsNumberInput<%=redText%>" id ="<%=LLBECOrderConstants.LLB_PAYDEVICE_COUPONFORM%>.<%=LLBECOrderConstants.LLB_PAYDEVICE_NUMBER%>_<%=i%>" name="<%=LLBECOrderConstants.LLB_PAYDEVICE_NUMBER%>_<%=i%>" size="15" maxlength="15" value="<%=txtbxCPID%>" class="redeemNum" onKeyPress="return checkEnter(event,'<%=LLBECOrderConstants.LLB_PAYDEVICE_COUPONFORM%>')"/> 
</div> 

答えて

2

あなたはIDによって要素を取得する必要がある場合、およびIDには、jQueryがセレクタの構文で混乱させる文字があります(.:は、など)、代わりにIDのためattr selectorを使用します。

$('[id="' + inputID '"]') 
+0

は、私はそれに打撃を与えるだろう - 感謝を! – Jason