我想根据用户选择的国家/地区更改“手机”的输入掩码。我很确定我的问题在于没有jQuery代码以正确的语法更改元素ID。
首先检查联系人是否已存档并显示数据(如果找到)。当我找到与国际电话号码的联系人时,该号码会根据需要显示。我们的大部分联系人都来自美国,因此我选择该代码作为初始显示。当新联系人从美国以外的国家(或国际代码“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>
答案 0 :(得分:1)
我想你也有一个我遇到的问题。结果我开发了一个插件,它选择一个输入掩码,它与输入的电话号码相匹配。看看demo。
答案 1 :(得分:0)
我相信您可以在选择国家时更改课程,然后使用新课程重新初始化您的面具:
<select id="country" name="country" onchange="show(this)">
<option value=".unitedStates" selected>United States</option><?php $code=1 ?>
<option value=".sweden">Sweden</option>
<input type="text" id="phoneNumber" />
JS:
$('#country').change(function(){
$("select option:selected").each(function () {
var className = $(this).val();
$('#phoneNumber').removeClass();
$('#phoneNumber').addClass(className);
initMasks();
});
});
function initMasks(){
$('.unitedStates').mask("(999) 999-9999");
$('.sweden').mask("99 99 99 99? 99");
}
答案 2 :(得分:0)
感谢用户1477388,我看了一下我做的不同。 我没有尝试更改元素的id,而是真的只想更改掩码。 select选项是从包含国家和代码(拨号代码)
的mySQL数据表填充的 <select id="country" name="country" onchange="show(this)">
<?php
$sql1="SELECT* FROM countries ORDER BY countryName";
$query1= mysql_query ($sql1) or die("Couldn't execute check country query. ". mysql_error());
while($row1=mysql_fetch_array($query1))
{
/* Option values are added by looping through the array */
echo '<option value="'.$row1[countryName].','.$row1[code].'"\">'.$row1[countryName].'</option>';
}
echo "</select>";
?>
然后在脚本中通过读取来确定拨号代码($ code) - [var a = a.value.split(“,”)[1]; ] 如果拨号代码= 1格式#phone是(999)999-9999 否则格式#phone是99 99 99 99 99
<script>
function show()
{
var a = document.getElementById('country');
var a = a.value.split(",")[1];
document.getElementById("code").value= a+"+";
$code=a;
if(a!=1)
{
$("#phone").mask("99 99 99 99? 99");}
else
{$("#phone").mask("(999) 999-9999");
}
};
</script>