使用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());  
});
});