2

这里我试图根据用户从下拉列表中选择值来更改文本框的值,但是下拉列表中选择的值没有在文本框上更新..请帮助我。

这是我的代码。

<script type="text/javascript" src="resources/javascripts/jquery-1.8.3.js"></script>
<script type="text/javascript">  
     $(document).ready(function() {                                       
        $("#name").live("change", function() {
          $("#firstname").val($(this).find("option:selected").attr("value"));
        })
     });                                     
</script>

<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="Elvis">India</option> 
<option value="Frank">Us</option> 
<option value="Jim">China</option> 
</select>

4

8 回答 8

1

这个适用于我的..

<html>
<head>
<script type="text/javascript" src="resources/javascripts/jquery-1.8.3.js"></script>
<script type="text/javascript">  
     $(document).ready(function() {                                       
        $("#name").live("change", function() {
          $("#firstname").val($(this).find("option:selected").attr("value"));
        });
     });                                     
</script>

<script type="text/javascript">
</script>
</head>
<body>
<div>
<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="Elvis">India</option> 
<option value="Frank">Us</option> 
<option value="Jim">China</option> 
</select><br />
<input type="text" id="firstname" name="firstname" value="" readonly="readonly">
</div>
</body>
</html>
于 2013-02-25T14:43:38.427 回答
1

要检索选定的值:

$("#name").change(function() {
      $("#firstname").val($(this).val());
});

要检索选定的文本:

$("#name").change(function() {
      $("#firstname").val($(this).find('option:selected').text());
});
于 2013-02-25T08:47:09.957 回答
0

你缺少一个文本框,你不应该使用live(). (在较新版本的 jquery 中显然缺少它)

<script type="text/javascript" src="resources/javascripts/jquery-1.8.3.js"></script>
<script type="text/javascript">  
     $(document).ready(function() {                                       
        $("#name").on("change", function() {
          $("#firstname").val($(this).find("option:selected").attr("value"));
        })
     });                                     
</script>
<input id=firstname type=text>
<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="Elvis">India</option> 
<option value="Frank">Us</option> 
<option value="Jim">China</option> 
</select>
于 2013-02-25T08:48:44.033 回答
0
<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="India">India</option> 
<option value="Us">Us</option> 
<option value="China">China</option> 

在两个地方输入相同的值

我觉得这就是你想要的

请检查这里

http://jsfiddle.net/francisstalin/wnyKq/
于 2013-02-25T11:59:17.223 回答
0

除了就绪函数中缺少分号外,您的代码没有问题

  $(document).ready(function() {                                       
        $("#name").live("change", function() {
          $("#firstname").val($(this).find("option:selected").attr("value"));
        });
     }); 

这行得通!

于 2013-02-25T08:53:32.953 回答
0

.val()用于获取当前元素(dom)值。看更多

.attr()用于获取 element(dom) 的某个属性的值。看更多

$("#name").on("change", function() {
      $("#firstname").attr('value',$(this).val());
});

更改.live为,.on因为 .live 已被弃用。

于 2013-02-25T08:43:58.170 回答
0

尝试这个:

$("#firstname").val($('select[name="name"]').val());
于 2013-02-25T08:45:43.603 回答
0

而不是现场使用更改功能:

 <script type="text/javascript">  
    $(document).ready(function() {
       $("#button").click(function() {
           $("#firstname").val($("#name").val());
       });
    });                                     
</script>

<input type="text" name="firstname" id="firstname"/>

<select id="name" name="name"> 
   <option value="">Please select...</option> 
   <option value="Elvis">India</option> 
   <option value="Frank">Us</option> 
   <option value="Jim">China</option> 
</select>

<input type="button" name="button" id="button" value="button" />

这将在文本框中设置选定的值。测试代码。

于 2013-02-25T08:46:46.560 回答