首页 新闻 会员 周边 捐助

javascript如何改变某个元素的value?

0
悬赏园豆:5 [已解决问题] 解决于 2014-09-05 12:31

元素如下:

    <label>昵称:</label><input onloadstart="isHidden();" readonly="readonly" type="text" id="nickname" name="NickName" value="$msg.NickName"/>  
    <input type="hidden" name="IsAnonymous" id="isanonymous" value="$msg.IsAnonymous"/>

想改变nickname的value,函数代码如下:

            function isHidden() {
                var isAnonymous = document.getElementById("isanonymous").value;
                var nickname = document.getElementById("nickname").value;
                if (isAnonymous == true) {
                    nickname = "匿名";
                }
            }

但是为啥实现不了呢?

问题补充:

隐藏字段IsAnonymous的值是从数据库中取出来的bit类型的值

Jack Leonardo的主页 Jack Leonardo | 初学一级 | 园豆:107
提问于:2014-09-05 00:26
< >
分享
最佳答案
1

1、语句“var isAnonymous = document.getElementById("isanonymous").value”,只要值字符串是true、false,判断 if(isAnonymous == true)  是能生效的(js有自动装箱拆箱功能),如果不能生效,你可以简单转换下达到目的

 

2、语句“var nickname = document.getElementById("nickname").value;”是获得了昵称,但不是昵称的input对象,当你 “nickname = "匿名";”只是改变了这个变量的值,而没有改变input的value。

 

3、正确的写法:

            function isHidden() {
                var isAnonymous = document.getElementById("isanonymous").value;
                var nickname = document.getElementById("nickname");
                if (isAnonymous == true) {
                    nickname.value = "匿名";
                }
            }
收获园豆:1
519740105 | 大侠五级 |园豆:5810 | 2014-09-05 06:48

@519740105

这个函数应该在什么地方调用才能使页面一加载就能改变nickname的value值呢?

Jack Leonardo | 园豆:107 (初学一级) | 2014-09-05 12:16
其他回答(3)
1

var nickname = document.getElementById("nickname").value;取的是值,不是对象。

document.getElementById("nickname").value="匿名";

收获园豆:1
晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-05 08:35

1、后端代码输出

2、document.ready事件

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-09-05 13:27
0

这其实是参数传递的差异。如果对取出的nickname=value值,做改变,其实改的是nickname的值,不会影响dom对象。建议参考楼上两位的代码。

收获园豆:1
幻天芒 | 园豆:37205 (高人七级) | 2014-09-05 09:36
0

楼上已经指出问题原因了

收获园豆:1
jello chen | 园豆:7336 (大侠五级) | 2014-09-05 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册