2012-04-27 130 views
3

我有一个JSP页面,我有一些input submit按钮。现在基于我从AJAX请求中获得的一些值,我想控制display and hiding of these input buttons。所以我为每个输入创建了spans。并根据我从AJAX请求收到的变量值我操纵显示属性。但我没有得到正确的结果。HTML中隐藏和显示范围

这里是我的代码:

<td style="width: 600px"><span id="startspan"><input name="start" value="startActivity" type="submit" id="startbuttonid"></span></td> 
     <td style="width: 600px"><span id="holdspan"><input name="start" value="holdActivity" type="submit" id="holdbuttonid"></span></td> 
     <td style="width: 600px"><span id="cancelspan"><input name="start" value="cancelActivity" type="submit" id="cancelbuttonid"></span></td> 
     <td style="width: 600px"><span id="closespan"><input name="start" value="closeActivity" type="submit" id="closebuttonid"></span></td> 

而且我java script代码我在哪里写代码显示或隐藏他们是::

if(temp1[15]=="InProcess"){ 
     document.getElementById('startspan').style.display='none'; 
     document.getElementById('holdspan').style.display = 'block'; 
     document.getElementById('cancelspan').style.display = 'block'; 
     document.getElementById('closespan').style.display = 'block'; 
    } 
    if(temp1[15]=="New"){ 
     document.getElementById('startspan').style.display='block'; 
     document.getElementById('holdspan').style.display = 'none'; 
     document.getElementById('cancelspan').style.display = 'block'; 
     document.getElementById('closespan').style.display = 'none'; 
    } 

这里在此基础上我收到罚款变量temp1[15]值。我想要显示或隐藏这些输入提交按钮。我正在以正确的方式进行,如定义跨度或需要一些更正。基本上所有这些输入按钮都在一个dialog box <div>里面,只有当我写了我的隐藏或显示跨度代码(上面写过)时才会打开一个功能。需要帮忙。谢谢。

+0

我在这里创建了一个JSFiddle,并且一切似乎都正常工作:http://jsfiddle.net/uGvam/ – phantasm 2012-04-27 15:08:55

回答

1

CSS中的display属性还决定它是否像块(DIV,P等)或内联元素(span,b等)以及其可见性一样起作用。

为了您的跨度要做到这一点,而不是:

document.getElementById('span').style.display = 'inline'; 

如果这是一个DIV你会用block,如果它是一个IMG你会使用inline-block

1

因为它在小提琴中工作,而不是在你的主代码中,所以我怀疑在加载DOM(或生成dialog box <div>)之前可能存在与执行代码有关的问题。你提到你正在使用AJAX。确保显示或隐藏按钮的代码位于AJAX成功回调中。

+0

如果您可以使用AJAX方法显示您的代码,那将会有所帮助。 – AnalogWeapon 2014-01-02 19:02:24