从select Jquery追加输入值?

时间:2014-07-07 12:57:38

标签: jquery input append

我选择了国家/地区代码

<select name="countryCode" id="">
    <option data-countryCode="GB" value="44" Selected>UK (+44)</option>
    <option data-countryCode="US" value="1">USA (+1)</option>
    <optgroup label="Other countries">
        <option data-countryCode="DZ" value="213">Algeria (+213)</option>
        <option data-countryCode="AD" value="376">Andorra (+376)</option>
    </optgroup>
</select>

在下一个字段中我输入了您的手机

 <input type="text" placeholder="Enter your mobile phone" data="required" id="phone" data-content='Your mobile phone'>

我需要的是当用户选择国家代码来附加这样的电话输入时 如果用户选择阿尔及利亚(+213),当他点击输入手机时,要追加他的价值,如 这+213,然后允许他输入更多号码。

2 个答案:

答案 0 :(得分:2)

使用以下代码:

$(function() {
    $('#phone').on('focusin', function() {
        var cc = $('select[name=countryCode]').val().replace(/^.*\(([\)]+)\).*$/,'$1');
        $(this).val( cc ).data('cc', cc);
    })
    .on('focusout',function() {
        if( this.value == $(this).data('cc') )
            $(this).val('');
        }
    });
});

$(function() {
    $('select[name=countryCode]').on('change', function() {
        var cc = this.value.replace(/^.*\(([\)]+)\).*$/,'$1');
        $('#phone').val( cc )..data('cc', cc);
    });
    $('#phone').on('focusout',function() {
        if( this.value == $(this).data('cc') )
            $(this).val('');
        }
    }); 
});

答案 1 :(得分:0)

如上所述,代码会在电话号码中设置值,但您需要将焦点设置为以下更新

$('select').change(function(){
        $('#phone').val( $(this).val() );
        $('#phone').focus();
    });

这将有助于您在改变时关注该领域