国に基づいてフォーム入力にプレフィックスを追加し、そのプレフィックスが編集されないようにする必要があります。設定に関する限り正しく機能していますが、国を切り替えるとブロック(読み取り専用)がクリアされません。入力はクリアされますが、最初の 3 つの列はまだ読み取り専用です。ここでスレッドを検索しましたが、ほとんどすべて attr("readonly", false) ステートメントを使用するように言われていますが、何らかの理由で機能していません。誰かが問題を指摘してくれませんか?
<div>
<label for="inputCountry">Country</label>
<div>
<select name="country" id="inputCountry" onchange="SetPhonePrefix();">
<option value="" selected="selected">Please Select</option>
<option value="84">Greece</option>
</select>
</div>
</div>
<script>
function SetPhonePrefix() {
var ctrl = document.getElementById("inputCountry");
var country = ctrl.options[ctrl.selectedIndex].text;
var doLock = false;
if (country == 'Greece') {
document.getElementById('inputFax').value = '+30';
doLock = true;
} else {
document.getElementById('inputFax').value = '';
$("#inputFax").attr("readonly", false);
}
if (doLock) {
var readOnlyLength = $('#inputFax').val().length;
$('#inputFax').on('keypress, keydown', function(event) {
if ((event.which != 37 && (event.which != 39))
&& ((this.selectionStart < readOnlyLength)
|| ((this.selectionStart == readOnlyLength) && (event.which == 8)))) {
return false;
}
});
}
}
</script>