你可以设置成readonly(只读)  这个可以修改值

解决方案 »

  1.   


    你好,谢谢回答,那个控件设置成readonly? 能具体一点么? 真的不懂
      

  2.   

    function radio_click_on()
    {
       document.getElementById("myForm").name.readOnly=false;
    }
    function radio_click_off()
    {
       document.getElementById("myForm").name.readOnly=true;
    }
      

  3.   

    之前没搞清楚你的问题, 刚刚自己执行了一下 ,可以了
    <html>
    <head>
    <script type="text/javascript">
    function radio_click_on()
    {
    document.getElementById("myForm").name.disabled=false; 
    }
    function radio_click_off()
    {
    document.getElementById("myForm").name.disabled=true;
    }function formReset()
    {
    document.getElementById("myForm").name.disabled=false; 
    document.getElementById("myForm").reset();
    }
    </script>
    </head><body>
    <p>How to reset all data?</p><form name="form0" id="myForm">
    Switch:<input type="radio" name="switch" value="Enable" checked="checked" onclick="radio_click_on()">Enable
    <input type="radio" name="switch" value="Disable" onclick="radio_click_off()">Disable<br />
    Name:<input name="name" type="text" size="20"><br />
    Age:<input name="age" type="text" size="20"><br />
    <br />
    <input type="button" onclick="formReset()" value="Cancel">
    </form>
    </body></html>
      

  4.   

    感谢你的耐心回答。 可是前提是我 不知道Switch的初始值,它可能的enable的,也可能是disable的,这个值是在Load的时候从配置文件读取的。所以在reset的时候硬性设置是不行的。
      

  5.   

    那就在加个判断:
    function formReset() { 
          if(初始值设置为enable){document.getElementById("myForm").name.disabled=false; }
          else{document.getElementById("myForm").name.disabled=true; }      
          document.getElementById("myForm").reset(); 
      

  6.   

    no200830740203 回答了我的问题,请看http://bbs.csdn.net/topics/390652906。过去看看吧,感谢大伙了! 
      
    不知道还有没有其它的方法的?
      

  7.   

    这样也不行的哦,你想阿,如果用户并没有改这一项,那么你这么做不就给它弄反了?

    看这样写行不:function formReset()
    {
    document.getElementById("myForm").reset();
    if(document.getElementById("enable").name.checked=="checked"){
    document.getElementById("myForm").name.disabled=false;
    }else{
    document.getElementById("myForm").name.disabled=true;
    }
    }不是首先调用一次reset()方法还原按钮的初始值,不是input按钮没恢复么,再判断一下默认的单选框选择的是哪一个,单独对input框设置一次就行了
      

  8.   

    其中的id是我给switch单选按钮加上的,一个是enable一个是disable
      

  9.   

    这样也不行的哦,你想阿,如果用户并没有改这一项,那么你这么做不就给它弄反了?

    看这样写行不:function formReset()
    {
    document.getElementById("myForm").reset();
    if(document.getElementById("enable").checked==true){
    document.getElementById("myForm").name.disabled=false;
    }else{
    document.getElementById("myForm").name.disabled=true;
    }
    }首先调用一次reset()方法还原按钮的初始值,不是input按钮没恢复么,再判断一下默认的单选框选择的是哪一个,单独对input框设置一次就行了修改了一下:if(document.getElementById("enable").checked==true)
      

  10.   

    你这代码写的就有问题,如你所说,你不知道switch的初始值,是后台提供的。那么你在代码中直接写
    Switch:<input type="radio" name="switch" value="Enable" checked="checked" onclick="radio_click_on()">就是不对的。
    因为你的switch是后台的值,所以在获取后台值后,你需要进行一个页面初始化操作://页面初始化函数
    function init(){
    if(switchstr=="Enable"){document.getElementById("myForm").switch[0].checked=true;radio_click_on();}
    if(switchstr=="Disable"){document.getElementById("myForm").switch[1].checked=true;radio_click_off();}
    }然后document.getElementById("myForm").reset();只是恢复表单初始值而已,与DOM操作没关系。所在在formReset中,再次执行init()即可;这样页面会根据你开始从后台获取的switch值来进行页面初始化。
    整个代码如下:<!DOCTYPE HTML>
    <html>
    <head>
    <script type="text/javascript">
    //页面初始化函数,个人觉得这个函数必须加。
    //不管是你的需求,还是从你页面的逻辑了解来看,这个都不能少
    function init(){
    if(switchstr=="Enable"){document.getElementById("myForm").switch[0].checked=true;radio_click_on();}
    if(switchstr=="Disable"){document.getElementById("myForm").switch[1].checked=true;radio_click_off();}
    }
    function radio_click_on()
    {
    document.getElementById("myForm").name.disabled=false;
    }
    function radio_click_off()
    {
    document.getElementById("myForm").name.disabled=true;
    }
    function formReset()
    {
    document.getElementById("myForm").reset();
    //reset只是初始化默认值,对DOM的操作,需要再执行页面初始化init();
    init();
    }
    //获取后台值,假设后台传值为Enable,你也可以改成Disable,这样开始name就是不能填写的
    var switchstr = "Disable";
    </script>
    </head>
    <body onload="init()">
    <p>How to reset all data?</p>
    <form name="form0" id="myForm">
    Switch:<input type="radio" name="switch" value="Enable"  onclick="radio_click_on()">Enable
    <input type="radio" name="switch" value="Disable" onclick="radio_click_off()">Disable<br />
    Name:<input name="name" type="text" size="20"><br />
    Age:<input name="age" type="text" size="20"><br />
    <br />
    <input type="button" onclick="formReset()" value="Cancel">
    </form>
    </body>
    </html>
      

  11.   

    这样也不行的哦,你想阿,如果用户并没有改这一项,那么你这么做不就给它弄反了?

    看这样写行不:function formReset()
    {
    document.getElementById("myForm").reset();
    if(document.getElementById("enable").checked==true){
    document.getElementById("myForm").name.disabled=false;
    }else{
    document.getElementById("myForm").name.disabled=true;
    }
    }首先调用一次reset()方法还原按钮的初始值,不是input按钮没恢复么,再判断一下默认的单选框选择的是哪一个,单独对input框设置一次就行了修改了一下:if(document.getElementById("enable").checked==true)
    谢谢回答,我测试了一下,是可以的哦,多加了一个id就解决了,太好了!!
      

  12.   

    谢谢帮忙! 我因为是从文件中用C读取的值去判断init时候哪个是checked的,写帖子很复杂,所以就有的代码没写进来。也就是相当于var switchstr 这个值我不知道怎么用c中的变量。(我的整个代码是用cgi实现的汗)