私はこのhtmlコードを持っています:
<div id="jiraTicketAccordion">
<div>
<h3><a href="#">key</a></h3>
<div>
<form>
<div id="jiraTable">
<table>
<tr>
<td class="label"><label for="arrival">ARRIVAL :</label></td>
<td><input type="text" name="arrival" class="arrival"
onblur="checkTime(this.value);"/></td>
<td class="label"><label for="newarrival">NEW ARRIVAL :</label></td>
<td><input type="text" name="newarrival" class="arrival"
onblur="checkTime(this.value);"/></td>
</tr>
</table>
</form>
</div>
</div>
</div><!-- end of accordion div -->
ご覧のとおり、その入力ボックスにイベントcheckTime
用のJavaScript 関数があります。onblur()
以前は、一意の ID を持つテキスト ボックスがあったのでdocument.getElementById
、JavaScript 関数でアクセスするために使用しました。
しかし、今では同じ構造のアコーディオンがたくさんあるので、多数になる可能性があるため、一意の ID を使用したくありません。
これで、その検証が必要なすべてのテキスト ボックスのクラスができました。
しかし、今まで使っていた JavaScript 関数を変更する必要がありdocument.getElementById
ます。
jqueryでクラスごとに要素を選択できることは知っていますが、それも試しましたが、必要な結果が得られませんでした。
これは私がjqueryで試したことです:
function checkTime(dateTime){
alert("inside check time");
var errorMsg="";
regex = /^(\d{2})\/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\/\d{2} \d{2}:\d{2} [AP]M$/;
if(dateTime != ''){
if(!regex.test(dateTime)){
errorMsg = "Please enter date and time in the format: \n dd/MMM/YY HH:MM AM/PM";
alert(errorMsg);
//how to make the element that called this function to
//blank value it it failed validation
}
}
}
テキスト ボックスの値を操作できるように、このメソッドを呼び出した要素にアクセスしたかったのです。
また、その関数内の同じアコーディオンで、クラスごとに他の要素にアクセスしたいと考えていcheckDate
ます。
テキストボックスを空白にする方法がわかりません。検証に失敗しました。
以前に id を持っていたとき、次のようにしていました:
document.getElementById('arrival').value='';