jQuery根据所选国家更改手机输入蒙版
问题描述:
我想根据用户选择的国家更改“手机”的输入蒙版。我敢肯定,在没有jQuery代码来改变元素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>
答
我相信你可以改变这个类的时候,他们选择一个国家,然后用新的类重新初始化你的面具:
<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");
}
答
感谢user1477388,我看着我在做什么不同。 ,而不是试图改变元素的ID,我真的只是想改变面具。 [VAR A = A - 选择选项,从包含的国家和代码(区号)通过阅读它确定一个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>";
?>
然后在脚本中的拨号代码($代码)填充。 value.split( “”)[1]; ] 如果区号= 1个格式#phone是(999)999-9999 else格式#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>
感谢您的时间。它给了我不同的观点。而不是改变ID,我最终做的是改变(#phone).mask 现在很好用。谢谢。 – seymour37 2013-02-23 15:30:26
不客气! – user1477388 2013-02-23 18:31:06