完全新手 因为有一些页面的要求所以才接触了javascript这块
我后台有一个boolean属性
想要达到的效果是 跳转进入这个页面之后
如果该属性为真 则submit按钮显示“已关注”并且呈现不可被按下状
如果该属性为假 则submit按钮显示“关注”并且呈现自然状网上查到一些相关的情况 但都是要在按下按钮后在onclick里头加入js函数被调用的 而且也不知道怎么控制value 以及如何与后台联系起来
我想要的是通过某action(我用的是ssh框架) 进入该页面 然后对这个submit的按钮进行样式的控制
谢谢

解决方案 »

  1.   

    在onload里处理js函数来控制submit的样式或者把
    <script>
    获取值
    设置样式
    </script>放在页面的最下面看看对你有帮助没?
      

  2.   

    <script>
    if(<%=request.getAttribute("boleans")%>){
       按钮对象.className = 以关注样式;
    }else{
       按钮对象.className = 关注样式;
    }
    </script>
    或者你可以直接在页面上写两个按钮让后根据你的后台Attribute属性 选择输出哪个
      

  3.   


    request是后台的一个属性么? 我用的ssh2框架里头基本没出现这个东西...
    那个关注样式 。。 是以怎样的方式写的?还有选择输出是怎么选择?以及这样两个按钮的位置是不一样的吧?
      

  4.   

    我只是举个例子,不管怎么获得参数,只要你能在前台页面输出你的那个后台参数.
    <script>
    if(<%=request.getAttribute("boleans")%>){
    按钮对象.value= 以关注;
    }else{
    按钮对象.value= 关注;
    }
    </script>
      

  5.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script>
    function change(){
    var a = true;  //这个值可以是你从后台获得的参数
    var btn = document.getElementById("btn1");
    if(a){
    btn.value="以关注";
    btn.disabled = true;
    }

    }
    </script>
    </HEAD><BODY>
    <input type="button" id="btn1" value="关注">
    <input type="button" id="btn2" value="测试" onclick="change()">
    </BODY>
    </HTML>
      

  6.   

    1.首先在action中你调用的方法中,设置返回到页面的值:
    假设action中有属性boolean flag = true;
    request.setAttribute("flag",flag );2.在jsp页面中如果可以使用EL表达式:
    <input type="submit" id="btn2" 
    <c:choose><c:when test="${flag eq true}" >value="已关注" disabled="disabled"〈/when〉
    <c:others>value="关注"</others></c:choose> />3.在jsp页面还可以这样设置:
    首先设一个隐藏域:<input type="hidden" id="backValue" value="<%=request.getAttribute("flag")%>">
    在onload里处理js函数changeState();来控制submit的样式:
    function changeState(){
      var flag = document.getElementById("backValue").value;
      if(flag == true){
         document.getElementById("btn2").value= "已关注";
         document.getElementById("btn2").disabled = true;}
    }
      

  7.   


    谢谢 我试了一下 的确有效果 但...效果是在按下btn2之后 btn1会有变化 原先是希望一载入页面就能判断的
      

  8.   


    我试了下第二个 用c标签做选择 恩有用的 一跳到这个页面就会根据后台的参数选择按钮的显示了 谢谢^^
    就是有一个影响 原先我是用s标签<s:form action="add-follow">
    <input type="submit" id="btn1" value="关注">
    </s:form>
    现在改成了<s:form action="add-follow">
    <c:choose>
    <c:when test="${isFollow eq true}">
    <input type="submit" id="btn2" value="已关注" disabled="disabled">
    </c:when>
    <c:otherwise>
    <input type="submit" id="btn1" value="关注" onclick="change()">
    </c:otherwise>
    </c:choose>
    </s:form>
    影响就是按下“关注”按钮 他并没有跳转到那个action
    这...咋办
      

  9.   

    然后我又做了个尝试
    在整个form末尾加了个按钮
    <s:form action="add-follow">
    <c:choose>
    <c:when test="${isFollow eq true}">
    <input type="submit" id="btn2" value="已关注" disabled="disabled">
    </c:when>
    <c:otherwise>
    <input type="submit" id="btn1" value="关注内" onclick="change()">
    </c:otherwise>
    </c:choose>
    <br>
    <input type="submit" id="btn1" value="关注外" onclick="change()">
    </s:form>
    按下“关注外“则能进入那个action 并且由于onclick的缘故”关注内“会变成”已关注“ 但是只有一刹那 之后还是会还原”关注内“
    按下”关注内“则不能进入那个action 只是会永久的变成”已关注“