需求:动态复制 input 标签到 另一个 标签内 发现复制的结果input的value值不可变

来源:互联网 发布:jquery ajax json请求 编辑:程序博客网 时间:2024/06/17 07:57


需求:动态复制 input 标签到 另一个 标签内  发现复制的结果input的value值不可变

要求:当源input标签的值改变时,复制的目的标签的值也要改变


方法:

<!DOCTYPE html><html><head><meta charset="utf-8" /><title></title></head><script type="text/javascript" src="js/jquery-1.8.0.js"></script><body><div class="test">              <ul id="u">                  <span>1号</span> <input id="ip1" type="text" value="1" /><br />                  <span>2号</span> <input id="ip2" type="text" value="1" /><br />                              </ul>                <button id="b">复制</button>              <br />                <ul id="u2">              </ul>    <br />    <!--也可以直接在标签中拼接js原生的onchange方法: -->            <span>3号</span> <input id="ip3" type="text" onchange="this.defaultValue=this.value"  value="1" /><br />        </div>  </body><script>var label = ""; //定义一个全局变量  $(function() {//给 ID为 u的ul下的每一个input标签都绑定值改变时,自动改变标签显示默认value值的方法  $("#u").find("input").bind("change", function() {/*方法一:*/var v = $(this).val();$(this).attr("value", v) //这句是用改变属性的方式  /*方法二:*/this.defaultValue = this.value; //也可以用这一句代替上面两句  label = $("#u").html(); //可以在这同时更新全局字符串变量;});//点击按钮执行复制动作$("#b").click(function() {//label = $("#u").html(); //在这取值也没问题alert(label);$("#u2").html(label);});});</script></html>


如果不方便用外部 bind方法给目标标签绑定change方法,也可以用js原生的onchange方法直接在拼接标签时写在标签里,如下:

<!--也可以直接在标签中拼接js原生的onchange方法: -->        <span>3号</span> <input id="ip3" type="text" onchange="this.defaultValue=this.value"  value="1" /><br />


这样在手动输入修改文本框的值后,用html()方法获取的标签中原来 value=“1”就变成了value=" 我们输入的值 " 了。

当然,如果是我们用js修改的value的值,那么我们要用 jq 先获取到当前文本框的jq对象,然后再 调用 .trigger(onchange);方法 才能达到像手动修改value值同样的效果

1 0