Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 基于选定属性的“选择输入”更改文本框值_Jquery_Jquery Selectors - Fatal编程技术网

Jquery 基于选定属性的“选择输入”更改文本框值

Jquery 基于选定属性的“选择输入”更改文本框值,jquery,jquery-selectors,Jquery,Jquery Selectors,我试图根据用户从下拉列表中选择的值更改文本输入的值。我使用以下方法使其正常工作: <script type="text/javascript"> $(document).ready(function() { $("#name").live("change", function() { $("#firstname").val($(this).find("opt

我试图根据用户从下拉列表中选择的值更改文本输入的值。我使用以下方法使其正常工作:

<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">Elvis</option> 
<option value="Frank">Frank</option> 
<option value="Jim">Jim</option> 
</select>

<input type="text" id="firstname" name="firstname" value="" readonly="readonly">
这一切都很好。我现在试图实现的是,如果用户希望编辑他们的选择,那么当用户重新访问表单时,默认情况下会显示预选项。此时,select只是默认为“请选择…”。当页面加载时,他们是否会强制select显示文本输入的值

谢谢

克里斯

试试这个

$document.readyfunction{ $name option.filterfunction{ 返回$this.val==$firstname.val; }.attr'selected',true; $name.livechange,函数{ $firstname.val$this.findoption:selected.attrvalue; }; }; 请选择。。。 埃尔维斯 直率的 吉姆 将此代码粘贴到$document.ready上

笔记 而不是.live。在jQuery 1.7+中使用.on,因为不推荐使用live

委托事件处理的.on语法为:

$(StaticParent).on( eventName, target, handlerFunction );
其中,StaticParent表示要在其上绑定事件的目标元素的非动态父容器

因此,对于上述情况,最好使用名称的任何静态父级而不是文档。

尝试一下:

基本上是onload,我只是通过值选择一个选项,将其设置为selected,然后调用change事件。你的变革活动会解决剩下的问题

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

要记住可以使用的表单值,请执行以下操作:


-如果重新访问此页面,该名称将被设置为页面左侧的名称。

立即检查这是您想要的吗?对不起,对于默认值或live Changes,它现在似乎根本不起作用。从jQuery 1.7开始,.live方法已被弃用。使用.on附加事件处理程序。
$('#name').val($('#firstname').val());
$(document).ready(function() {   

  $(document).on("change", "#name", function() {

     $("#firstname").val( this.value ); // this.value is enough for you

  }).val( $('#firstname').val() ).change(); // for pre-selection trigger

});      
$(StaticParent).on( eventName, target, handlerFunction );
$(document).ready(function() {                                       
  $("#name").live("change", function() {
    $("#firstname").val($(this).find("option:selected").attr("value"));
  });
  $('#name option[value=Frank]').attr('selected','selected').change();
});
$(document).ready(function() {
    var value = readCookie('fname');
    if (value) {
        $("#firstname").val(value);
        $('#name option[value="'+value+'"]').prop('selected', true);
    }
    $("#name").on("change", function() {
        var value = $(this).find("option:selected").attr("value");
        $("#firstname").val(value);
        createCookie('fname',value,31);
    });
});

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}