使用jquery预先输入要输入的文本
我希望添加国家代码的电话号码的基础上选择的下拉列表。到目前为止,我已经:使用jquery预先输入要输入的文本,jquery,Jquery,我希望添加国家代码的电话号码的基础上选择的下拉列表。到目前为止,我已经: jQuery(function($) { var input = $( "#Phone" ); var country = ""; $('#Country').on('change', function() { var inputval = input.val(); if ($(this).val() == "United States") { country = "1 "; input.val(c
jQuery(function($) {
var input = $( "#Phone" );
var country = "";
$('#Country').on('change', function() {
var inputval = input.val();
if ($(this).val() == "United States") {
country = "1 ";
input.val(country + inputval);
} else if($(this).val() == "United Kingdom"){
country = "+44 ";
input.val(country + inputval);
}
});
});
它会更新号码是的,但如果我从美国切换到英国,它会保留1或+44。好的,试试这个
HTML模板
<select id="country">
<option value="+91"> India </option>
<option value="+1"> USA </option>
.....
</select>
好的,试试这个
HTML模板
<select id="country">
<option value="+91"> India </option>
<option value="+1"> USA </option>
.....
</select>
编辑:
修改示例,以便在更改国家/地区代码时只输入一个条目并保留电话号码:
这种方法如何:输入国家代码和不同的电话号码(如果绝对必要,您可以在提交表格之前将两者合并):
工作小提琴:
希望有帮助 编辑:
修改示例,以便在更改国家/地区代码时只输入一个条目并保留电话号码:
这种方法如何:输入国家代码和不同的电话号码(如果绝对必要,您可以在提交表格之前将两者合并):
工作小提琴:
希望有帮助 “但如果我从美国切换到英国,它会保持1或+44”——当然会,因为您修改了输入值。因此,您需要先明确删除先前添加的前缀,或者存储“原始”值。但是为什么首先需要操纵输入字段中的值呢?如果用户在下拉字段中选择了前缀,那么您已经拥有了所需的信息-那么冗余有什么好处呢?您可以对代码和数字使用不同的字段。我认为最好的解决方案是仅对代码使用单独的禁用输入。否则,您可以存储电话号码而无需任何代码,并根据所选国家/地区更新显示,但如果用户更新电话号码,则显示将不起作用。“但如果我从美国切换到英国,它将保留1或+44”-当然会保留,因为您修改了输入值。因此,您需要先明确删除先前添加的前缀,或者存储“原始”值。但是为什么首先需要操纵输入字段中的值呢?如果用户在下拉字段中选择了前缀,那么您已经拥有了所需的信息-那么冗余有什么好处呢?您可以对代码和数字使用不同的字段。我认为最好的解决方案是仅对代码使用单独的禁用输入。否则,您可以存储电话号码而无需任何代码,并根据所选国家/地区更新显示,但如果用户更新电话号码,则无法使用。我认为这不起作用。如果你改变国家两次。您将返回到电话号码前有+1+91的情况。如果您选择了一个国家,您的电话号码可能是:+91011112,您会更新它,因为最后一个数字:+91011113出错。现在var手机也包含+91,所以您仍然被卡住。问题是我已经在该值上附加了一个值。解决了它@NicoYes它现在工作得很好(您只需要输入文本类型的手机,因为“+”),但这是迄今为止最好的解决方案+1我认为这行不通。如果你改变国家两次。您将返回到电话号码前有+1+91的情况。如果您选择了一个国家,您的电话号码可能是:+91011112,您会更新它,因为最后一个数字:+91011113出错。现在var手机也包含+91,所以您仍然被卡住。问题是我已经在该值上附加了一个值。解决了它@NicoYes它现在工作得很好(您只需要输入文本类型的手机,因为“+”),但这是迄今为止最好的解决方案+1.
var phone="";
var prefix="";
$("#phone").keyup(function(){
phone=$(this).val().replace(prefix,"");
})
$("#country").change(function(){
$("#phone").val($(this).val()+phone);
prefix=$(this).val();
/* explanation
* setting the value of $("#phone")
* concatenating $(this).val() [basically the select] and the value of
* $("#phone") itself which is stored in phone variable
*/
})
jQuery(function($) {
var input = $( "#Phone" );
var ccode = $('#ccode');
var country = "";
$('#Country').on('change', function() {
console.log('change..' + $("#Country option:selected").val() );
var inputval = input.val();
ccode.val($("#Country option:selected").val());
});
});