如何在jquery中停止附加更改值?

时间:2015-04-09 07:12:41

标签: javascript jquery

http://jsfiddle.net/tossr6ss/

以上是我的小提琴

Jquery的

$('#Company').change(function(){
        var companyid = $(this).val();      
        var PrsIDNo = $('#PrsIDNo').val();                  
        $('#PrsIDNo').val(companyid+PrsIDNo);       
});

我想要的是尝试根据下拉列表获取唯一编号,但现在我的输出类似于3215040003323315040003,同时更改值会更改值正在追加。如何停止?

预期输出

Changing value concat 15040003

3215040003 3315040003 3115040003

像上面的输出是我需要如何实现这一点?

4 个答案:

答案 0 :(得分:1)

要停止不断添加新值,您需要将原始值存储在页面加载时。使用data属性是理想的选择。然后在下拉列表的change事件中,您可以检索该值并附加到该值。试试这个:



$('#PrsIDNo').data('original-value', $('#PrsIDNo').val());

$('#Company').change(function () {
    var companyid = $(this).val();
    var PrsIDNo = $('#PrsIDNo').data('original-value');
    $('#PrsIDNo').val(companyid + PrsIDNo);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select class="choiceSelect my_prs_sele" id="Company" readonly="readonly" name="Company">
    <option value="">Choose</option>
    <option value="32">Com1</option>
    <option value="33">Com2</option>
    <option value="31" selected="selected">Com3</option>
</select>
<input class="my_prs_inp" id="PrsIDNo" name="PrsIDNo" type="text" value="15040003">
<div id="PresNo"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

问题是每次设置PrsIDNo的值时,该新值将用于后续调用和设置。需要存储初始值,以使其不会发生变化。

更改&#39; 15040003&#39;存储在PrsIDNo的值中,而不是存储在name属性中,如下所示:

<input class="my_prs_inp" id="PrsIDNo"  name="15040003" type="text">

然后,确保name属性最初用于形成PrsIDNo值:

$('#Company').change(function(){
        var companyid = $(this).val();      
        var PrsIDNo = $('#PrsIDNo').attr("name"); // Use name attribute instead                 
        $('#PrsIDNo').val(companyid + PrsIDNo);     
});

答案 2 :(得分:0)

请使用以下代码 http://jsfiddle.net/mayankipsa/tossr6ss/2/

$('#Company').change(function(){
    alert($(this).val());
    var initial=15040003;
    var companyid = $(this).val();		
	var res= companyid+initial;
		$('#PrsIDNo').val(res);		
});
<select class="choiceSelect my_prs_sele" id="Company" readonly="readonly" name="Company"><option value="">Choose</option><option value="32">Com1</option><option value="33">Com2</option><option value="31" selected="selected">Com3</option></select>
    
    <input class="my_prs_inp" id="PrsIDNo"  name="PrsIDNo" type="text" value="15040003">
    
 <div id="PresNo"></div>

答案 3 :(得分:0)

这是你想要的:

$('#Company').change(function(){
  var companyid = $(this).val();        
  var PrsIDNo = $('#PrsIDNo').val();                    
  $('#PresNo').text(companyid+PrsIDNo);     
}).trigger('change');

再次运行〜