ユーザーが選択した国に応じて、「電話」の定型入力を変更したい。私の問題は、要素 ID を正しい構文で変更するための jQuery コードがないことにあると確信しています。
まず、連絡先が既にファイルに登録されているかどうかを確認し、見つかった場合はデータを表示します。国際電話番号の連絡先を見つけると、希望どおりに番号が表示されます。私たちの連絡先のほとんどは米国からのものなので、そのコードを最初の表示として選択します. この問題は、新しい連絡先が米国 (または国際コード「1」) 以外の国から登録された場合に発生します。その後、マスキングはiphoneに変わりません。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js">
</script>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript" src= "../js/jquery.maskedinput.js"></script>
<script>
function show()
{
var a = document.getElementById('country');
var a = a.value.split(",")[1];
document.getElementById("code").value= a+"+";
if(a!=1)
jQuery(this).prev("phone").attr("id", "iphone");
else
jQuery(this).prev("iphone").attr("id", "phone");
};
</script>
</head>
<body>
<p>Country:
<select id="country" name="country" onchange="show(this)">
<option value="United States,1" selected>United States</option><?php $code=1 ?>
<option value="Sweden,37">Sweden</option>
</p>
<p>Phone:
<?php echo '<input name="code" id="code" size="1" type ="text" disabled="disabled" value="'.$code.'+"/>';
if($code!=1)
{
echo '<input name="phone" id="iphone" type="text" value="'.$result1[phone].'"/>';
}
else
{
echo '<input name="phone" id="phone" type="text" value="'.$result1[phone].'"/>';
}
?>
</p>
<script>jQuery(function($)
{
$("#phone").mask("(999) 999-9999");
$("#iphone").mask("99 99 99 99? 99");
});
</script>
</body>
</html>