ユーザーがステートメントに同意する必要があるアプリケーションの領域があり、ユーザーが「はい」を選択すると、日付/時刻が読み取り専用フィールドに自動的に入力されるように、Javascript/jQuery を使用しています。
再現できませんが、「はい」を選択すると日付/時刻が入力されず、フィールドが読み取り専用であるため、自分で入力できないと複数のユーザーから言われています。
私のコードには、特定のブラウザーで上記の問題を引き起こす型にはまらないものはありますか? 誰でも自分のマシンでこれを再現できますか?
これが実際の例です: http://jsfiddle.net/YL2Wd/
HTML:
<div>
<label>I agree:*</label>
<span class="options">
<label for="agreement_no">No</label>
<input type="radio" class="required authorization" value="0" id="agreement_no" name="agreement">
<label for="agreement_yes">Yes</label>
<input type="radio" class="required authorization" value="1" id="agreement_yes" name="agreement">
</span>
</div>
<div class="description">
Agreement Text
</div>
<div class="question">
<label for="authorization_timestamp">Date/Time*</label>
<input type="text" readonly="readonly" maxlength="100" class="authorization_timestamp required" name="authorization_timestamp" id="authorization_timestamp">
</div>
Javascript:
$('.authorization[id$="yes"]').on('change', function() {
var dateStr;
if ($(this).val() == 1) {
var now = new Date();
var month = now.getMonth() + 1;
var day = now.getDate();
var year = now.getFullYear();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
h = h < 10 ? "0" + h : h;
m = m < 10 ? "0" + m : m;
s = s < 10 ? "0" + s : s;
dateStr = month + "/" + day + "/" + year + " " + h + ":" + m + ":" + s
}
$(this).parent().parent().nextAll().find(".authorization_timestamp").first().val(dateStr);
});
$('.authorization[id$="no"]').on('change', function() {
var dateStr;
dateStr = "";
$(this).parent().parent().nextAll().find(".authorization_timestamp").first().val(dateStr);
});