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:&nbsp; 
<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:&nbsp; 
<?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"); 
} 
+0

感谢您的时间。它给了我不同的观点。而不是改变ID,我最终做的是改变(#phone).mask 现在很好用。谢谢。 – seymour37 2013-02-23 15:30:26

+0

不客气! – user1477388 2013-02-23 18:31:06

感谢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> 

我想你有我有太多经历了一个问题。因此,我已经开发了选择输入的面具,其匹配输入的电话号码更多的插件。看看demo