2015-02-23 48 views
0

我刚开始学习jQuery,想知道是否有人可以帮我弄清楚如何将这个JavaScript转换为jQuery。这应该正在做的是得到下拉#transfertype以及文本框#purchaseprice。然后,下拉列表中的每个数字与#purchaseprice应如何操作以及文本框中自动打印的内容(如果有的话)相关联。将JavaScript转换为jQuery,文本框的下拉控制功能

function pp(){ 
      var dropdown1 = document.getElementById('transfertype'); 
      var textbox = document.getElementById('purchaseprice'); 
      if(dropdown1.selectedIndex == 0){ 
       textbox.value = ""; 
       document.getElementById("purchaseprice").readOnly = false; 
      } else if(dropdown1.selectedIndex == 1) { 
       textbox.value = ""; 
       document.getElementById("purchaseprice").readOnly = false; 
      } else if(dropdown1.selectedIndex == 2) { 
       textbox.value = "Gift"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 3) { 
       textbox.value = "Trade"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 4) { 
       textbox.value = "Repossession"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 5) { 
       textbox.value = "Court Order"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 6) { 
       textbox.value = "Inheritance"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 7) { 
       textbox.value = "Add Name"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } else if(dropdown1.selectedIndex == 8) { 
       textbox.value = "Remove Name"; 
       document.getElementById("purchaseprice").readOnly = true; 
      } 
     } 

<select id="transfertype"> 
    <option value="">Please Select 
    <option value="Sale">Sale 
    <option value="Gift">Gift 
    <option value="Trade">Trade 
    <option value="Repossession">Repossession 
    <option value="Court Order">Court Order 
    <option value="Inheritance">Inheritance 
    <option value="Add Name">Add Name 
    <option value="Remove Name">Remove Name 
</select> 

$(document).ready(function() { 
 
    $('#transfertype').change(function() { 
 
    $('#purchaseprice') 
 
     .val($(this).val()) 
 
     .prop('readOnly', $(this).val()>''); 
 
    }); 
 
    if $('#transfertype').val("Sale"){ 
 
    $('#purchaseprice').val(""); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="purchaseprice"> 
 
<select id="transfertype"> 
 
    <option value="">Please Select 
 
    <option value="Sale">Sale 
 
    <option value="Gift">Gift 
 
    <option value="Trade">Trade 
 
    <option value="Repossession">Repossession 
 
    <option value="Court Order">Court Order 
 
    <option value="Inheritance">Inheritance 
 
    <option value="Add Name">Add Name 
 
    <option value="Remove Name">Remove Name 
 
</select>

+0

你为什么要检查下拉列表,而不是值的指数?你想要吗? – 2015-02-23 14:47:53

回答

1

的jQuery可以大大简化代码:

$(document).ready(function() { 
 
    $('#transfertype').change(function() { 
 
    if($(this).val()==='' || $(this).val()==='Sale') { 
 
     $('#purchaseprice').val('').prop('readOnly', false); 
 
    } 
 
    else { 
 
     $('#purchaseprice').val($(this).val()).prop('readOnly', true); 
 
    }; 
 
    }); 
 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="purchaseprice"> 
 
<select id="transfertype"> 
 
    <option value="">Please Select 
 
    <option value="Sale">Sale 
 
    <option value="Gift">Gift 
 
    <option value="Trade">Trade 
 
    <option value="Repossession">Repossession 
 
    <option value="Court Order">Court Order 
 
    <option value="Inheritance">Inheritance 
 
    <option value="Add Name">Add Name 
 
    <option value="Remove Name">Remove Name 
 
</select>


解决方案使用selectedIndex

$(document).ready(function() { 
 
    $('#transfertype').change(function() { 
 
    var opt= ['','','Gift','Trade','Repossession','Court Order','Inheritance','Add Name','Remove Name']; 
 
    if(this.selectedIndex < 2) { 
 
     $('#purchaseprice').val(opt[this.selectedIndex]).prop('readOnly', false); 
 
    } 
 
    else { 
 
     $('#purchaseprice').val(opt[this.selectedIndex]).prop('readOnly', true); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="purchaseprice"> 
 
<select id="transfertype"> 
 
    <option value="">Please Select 
 
    <option value="Sale">Sale 
 
    <option value="Gift">Gift 
 
    <option value="Trade">Trade 
 
    <option value="Repossession">Repossession 
 
    <option value="Court Order">Court Order 
 
    <option value="Inheritance">Inheritance 
 
    <option value="Add Name">Add Name 
 
    <option value="Remove Name">Remove Name 
 
</select>