0

这是一个非常基本的脚本,但基本上我在单击时显示一个 div,然后在您稍后单击按钮标题时隐藏 div。我以前做过,而且效果很好。我似乎无法找出我做错了什么,或者做错了什么。就像我说的,第一个click()显示完美,第二个hide()什么都不做

JS:

function click1(){
    document.getElementById('form1').style.display='block';
}

function hide1(){
    document.getElementById('form1').style.display='none';
}

HTML:

<tbody>
 <tr>
  <td style="cursor:pointer;" onclick="click1()">
   <div id="form1" style="display:none;">
    <form action="enter.php" method="post">
     <label for="entry1">Entry1</label>
      <input type="text" id="entry1" name="entry1" size="15" /><br>
     <label for="entry2">Entry2</label>
      <input type="text" id="entry2" name="entry2" size="15"/><br>
     <label for="entry3">Entry3</label>
      <input type="text" id="entry3" name="entry3" size="15"/><br>
      <input type="hidden" name="id" value="1" /><br>
      <input type="hidden" name="table" value="table" /><br>
      <input type="submit" value="GO!" />
      <input type="button" value="later" onClick="hide1()"/>
    </form>
   </div><sub>1</sub>
  </td>
 </tr>
</tbody>
4

2 回答 2

2

该按钮是 的子级,td因此两个函数都将在同一个点击事件上触发。

将此添加到hide1()

function hide1(e){
    document.getElementById('form1').style.display='none';
    e.stopPropagation();
}

这将防止事件冒泡 DOM 并触发该td事件。

您还需要在点击处理程序中传递事件:onClick="hide1(event)"

演示:http: //jsfiddle.net/7PT8U/

于 2013-01-21T07:00:27.900 回答
0

你可以做这样的事情

 <tbody>
 <tr>
  <td style="cursor:pointer;">
   <div id="form1" style="display:none;">
    <form action="enter.php" method="post">
     <label for="entry1">Entry1</label>
      <input type="text" id="entry1" name="entry1" size="15" /><br>
     <label for="entry2">Entry2</label>
      <input type="text" id="entry2" name="entry2" size="15"/><br>
     <label for="entry3">Entry3</label>
      <input type="text" id="entry3" name="entry3" size="15"/><br>
      <input type="hidden" name="id" value="1" /><br>
      <input type="hidden" name="table" value="table" /><br>
      <input type="submit" value="GO!" />
      <input type="button" value="later" onClick="hide1()"/>
    </form>
   </div><sub onclick="click1()">1</sub>
  </td>
 </tr>
</tbody>
于 2013-01-21T07:09:21.627 回答