3 つの電話番号を検証するコードを書いています。ロジックは、数値の 1 つが有効である必要があり、そうでない場合はコードの 3 行目にエラーがあります。IEを除いて、完全にうまく機能します。IE はエラーを検出しません。このコードに IE で正しく動作しない部分はありますか?
//check first homephone
//check second workphone
//check third cellphone
// if nothing = 10 then something is wrong
var numLengthHome = ($('.homephone > .validPhone:eq(0)').val().length) + ($('.homephone > .validPhone:eq(1)').val().length) + ($('.homephone > .validPhone:eq(2)').val().length);
var numLengthWork = ($('.workphone > .validPhone:eq(0)').val().length) + ($('.workphone > .validPhone:eq(1)').val().length) + ($('.workphone > .validPhone:eq(2)').val().length); var numLengthCell = ($('.cellphone > .validPhone:eq(0)').val().length) + ($('.cellphone > .validPhone:eq(1)').val().length) + ($('.cellphone > .validPhone:eq(2)').val().length);
var num1 = true; var num2 = true; var num3 = true; // all assume the numbers are fine until proven otherwise
if ((($('.homephone > .validPhone:eq(0)').val()) && ($('.homephone > .validPhone:eq(1)').val()) && ($('.homephone > .validPhone:eq(2)').val()) && (numLengthHome == 10))) {
$('.cellphone > .validPhone:eq(2)').parents('.formgroup').addClass('error');
num1 = false;
}
else if ((($('.workphone > .validPhone:eq(0)').val()) && ($('.workphone > .validPhone:eq(1)').val()) && ($('.workphone > .validPhone:eq(2)').val()) && (numLengthWork == 10))) {
$('.cellphone > .validPhone:eq(2)').parents('.formgroup').addClass('error');
num2 = false;
} else if ((($('.cellphone > .validPhone:eq(0)').val()) && ($('.cellphone > .validPhone:eq(1)').val()) && ($('.cellphone > .validPhone:eq(2)').val()) && (numLengCell == 10))) {
$('.cellphone > .validPhone:eq(2)').parents('.formgroup').addClass('error'); num3 = false;
} else {
$('.cellphone > .validPhone:eq(2)').parents('.formgroup').removeClass('error');
}
if((num1 == true) || (num2 == true) || (num3 == true)) {
$('.cellphone > .validPhone:eq(2)').parents('.formgroup').removeClass('error');
}
HTML:
<tr>
<td class="label_col indent">
<div class="label">
Home Phone:
</div>
</td>
<td>
<div id="ucRelatedContentControls_ctl01_divHomePhone" class="formgroup homephone">
<input name="ucRelatedContentControls$ctl01$txtHomePhone1" maxlength="3" id="ucRelatedContentControls_ctl01_txtHomePhone1" class="input_10 input_stacked validPhone" type="text"><span class="pipe">-</span>
<input name="ucRelatedContentControls$ctl01$txtHomePhone2" maxlength="3" id="ucRelatedContentControls_ctl01_txtHomePhone2" class="input_10 input_stacked validPhone" type="text"><span class="pipe">-</span>
<input name="ucRelatedContentControls$ctl01$txtHomePhone3" maxlength="4" id="ucRelatedContentControls_ctl01_txtHomePhone3" class="input_10 input_stacked validPhone" type="text">
<div class="tooltip">
<div class="tooltip_arrow">
</div>
<div class="tooltip_message">
ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit ...
</div>
</div>
<div class="invalid">
<div class="invalid_arrow">
</div>
<div class="invalid_message">
Error message
</div>
</div>
</div>
</td>
</tr>
(表は気にしないでください - 私がやっているプロジェクトの範囲内ではありません:)