javascript - 如何根据select值改变,修改input textarea标签的name?
黄舟
黄舟 2017-04-11 10:03:34
[JavaScript讨论组]

**如何根据select的值给name赋值
即这样**

type[dayi][grade]
type[dayi][phone]

type[dasan][grade]
type[dasan][phone]

我使用的方法 function type_change(){}不好使,
有多个分组时错乱。。。

源码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>添加数据</title>
    <link href="./css/bootstrap.min.css" rel="stylesheet">
    <style>
    body {
        padding-top: 20px;
    }
    .nomal-heigh {
        height: 30px;
        margin-bottom: 6px;
        font-size: 14px;
        line-height: 1.5;
        border-radius: 3px;
    }
    </style>
</head>

<body>
    <p class="container wrap">
        <form class="form-horizontal has-success" role="form" action="" method="post">
            <p id="main" class="form-group col-xs-6">
                <p class="input-group col-xs-12 nomal-heigh">
                    <span class="input-group-addon">活动</span>
                    <input type="text" class="form-control input-sm" name="name">
                </p>
                <p class="input-group col-xs-12 nomal-heigh">
                    <span class="input-group-addon">图片</span>
                    <input type="text" class="form-control input-sm" name="pic">
                </p>
                <p id="type" class="input-group col-xs-12 nomal-heigh">
                    <a class="input-group-addon" href="javascript:type_add();">添加分组+</a>
                    <p class="input-group-btn">
                        <select name="type[0][grade]" class="form-control input-sm" onchange="type_change(this.value)" style="width: auto">
                            <option value="dayi">大一</option>
                            <option value="daer">大二</option>
                            <option value="dasan">大三</option>
                            <option value="dasi">大四</option>
                        </select>
                    </p>
                    <input id="phone" type="text" name="type[0][phone]" class="form-control input-sm" title="电话">
                </p>
                <p id="info" class="input-group col-xs-12 nomal-heigh">
                    <textarea name="type[0][info]" class="form-control" rows="3" title="主题信息"></textarea>
                </p>
            </p>
            <p class="form-group col-xs-8">
                <p class="input-group col-xs-3 nomal-heigh">
                    <button type="submit" class="btn btn-success col-xs-12">提交</button>
                </p>
            </p>
        </form>
    </p>
    <script src="./js/jquery2.1.4.min.js"></script>
    <script src="./js/bootstrap.min.js"></script>
    <script type="text/javascript">
    function type_add() {
        var len = $("p#type").length;
        $("#main").append($("p#type").prop("outerHTML").replace(/type\[0\]/g,"type["+len+"]")+$("p#info").prop("outerHTML").replace("type[0]","type["+len+"]"));
    }
    </script>
    <script type="text/javascript">
    function type_change(flag) {
        // alert(flag);
        // alert($("#type select").html);
        $("#type select").attr("name","type["+flag+"][grade]");
        $("#type input").attr("name","type["+flag+"][phone]");
        $("#info textarea").attr("name","type["+flag+"][info]");
    }
    </script>

</body>

</html>
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网

事件绑定有问题,建议给select加一个ID,#select,在script中绑定;
另外三个name的初始值设为select第一个值被选中情况下的值。

<select id="select" name="type[dayi][grade]" class="form-control input-sm" style="width: auto">
    <option value="dayi">大一</option>
    <option value="daer">大二</option>
    <option value="dasan">大三</option>
    <option value="dasi">大四</option>
</select>

<input id="phone" type="text" name="type[dayi][phone]" class="form-control input-sm" title="电话">  

<textarea name="type[dayi][info]" class="form-control" rows="3" title="主题信息"></textarea>     
            
<script>
$('#select').on('change',function(){
  var key = this.value;
  $(this).attr('name','type['+key+'][grade]');
  $('#phone').attr('name','type['+key+'][phone]')
  $('#info textarea').attr('name','type['+key+'][info]')
})
</script>
伊谢尔伦

嗯,change方法是正确的,当改变的时候就获取select的value值

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号