以下のこのコードによると、ユーザーがチェックボックスをオンにすると、日付がcDateというテキストボックスコントロールに自動的に挿入されます。これはうまく機能します:
function ClickBox(cb) {
var tr = cb;
while (tr.tagName != "TR") {
tr = tr.parentNode;
if (tr == null) return; // something went wrong
}
var inps = tr.getElementsByTagName("input");
for (var i = 0; i < inps.length; ++i) {
var inp = inps[i];
if (inp.name.indexOf("cDate") >= 0) {
inp.value = rightDate();
break;
}
}
}
影響を受けるコントロールは次のとおりです。
<ItemTemplate>
<asp:CheckBox ID="myrecord" runat="server" onclick="ClickBox(this)" />
</ItemTemplate>
<ItemTemplate>
<asp:TextBox runat="server" style="border: none;" ID="cDate"></asp:TextBox>
</ItemTemplate>
ユーザーが現在抱えている問題は、チェックボックスがオンになって日付が挿入されたら、挿入された日付を削除する唯一の方法は[リセット]ボタンをクリックすることです。
チェックボックスがオフになったら、挿入された日付を非表示にすることをお勧めします。
以下のこの変更されたコードは機能していません。エラーは発生しませんが、チェックボックスをオンにしたりオフにしたりしても、何も起こりません。日付が挿入されなくなります。
function ClickBox(cb) {
var tr = cb;
var inps = tr.getElementsByTagName("input");
if(cb.checked == 1){ // CheckBox checked condition
while (tr.tagName != "TR") {
tr = tr.parentNode;
if (tr == null) return; // something went wrong
}
for (var i = 0; i < inps.length; ++i) {
var inp = inps[i];
if (inp.name.indexOf("cDate") >= 0) {
inp.value = rightDate();
break;
}
}
}
else{
for (var i = 0; i < inps.length; ++i) {
var inp = inps[i];
inp.value = '';
}
}
}
何が間違っているのかわかりません。
ご協力いただきありがとうございます。