配送方法選択ボックス (cmbD_method) に「選択してください...」オプションを追加し、ユーザーが配送方法を選択したことを確認して、基本的なフォーム検証を行っています。ソースを変更できないため、私のコードでは、validateUserDataFields() という既存の関数に検証を追加します。
ただし、どのオプションを選択しても、アラート メッセージが表示され、コンソールに「Uncaught TypeError: Cannot read property '0' of undefined」と表示されます。
私は何が欠けていますか?私のコードは以下の通りです:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type='text/javascript'>
var delMeth = new Option('Please Select A Delivery Method', '0');
$(delMeth).html("Please Select A Delivery Method");
$("#cmbD_Method").append(delMeth);
$('#cmbD_Method').val(0);
$('#cmbD_Method').width($('#cmbD_Method').width() + 40);
var validate = validateUserDataFields;
validateUserDataFields = function () {
if ($('#cmbD_Method').val(0)) {
alert('Please Select A Delivery Method');
}
else {
validate(); // call the original function
}
};
</script>