【问题标题】:Show Hide Table Row based on Check Box根据复选框显示隐藏表格行
【发布时间】:2013-11-20 19:34:59
【问题描述】:

在这个Fiddle 中,我试图显示/隐藏包含基于复选框选择的文件输入的表格行。但是 showHide 函数没有被调用。

<div align="center" class="divBody">
<br />
<div id="controlHost">
    <div id="outerPanel">
        <table width="100%" cellpadding="2" cellspacing="5">
            <tr align="left">
                <td colspan="2">
                    <input type="checkbox" id="c1" onclick="showHide()">only Textbox</input>
                </td>
            </tr>
            <tr align="left" id="fileLabel">
                <td colspan="2">
                    <span class="message" >Select file</span>
                </td>
            </tr>
            <tr align="left" id="fileBox">
                <td valign="top" style="height:100%; width:70%;">
                    <input type="file" id="FileInput" multiple="false" class="fileInput" style="height:100%; width:100%;"/>
                </td>
            </tr>
         <tr align="left">
                <td colspan="2">
                    <span class="message" >Types</span>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" id="txtTypes" tabindex="0" style="margin-left:1px;width:100%" maxlength="50" >
                </td>
            </tr>
            <tr>
                <td align="center">
                    <input type="button" id="upload" name="Upload" value="Update" onclick="startUpload('FileInput', 1048576, 'uploadProgress', 'statusMessage', 'upload', 'cancel');"
                        class="button" />
                    <input type="button" id="cancel" name="Cancel" value="Cancel" disabled="disabled"
                        onclick="cancelUpload();" class="button" />
                </td>
            </tr>
        </table>
    </div>
</div>

【问题讨论】:

  • 可能有问题。但是,如果我在本地 vs 上运行相同的代码,那么它可以正常工作。

标签: javascript jquery html


【解决方案1】:

从您的代码本身来看,很明显 您缺少 jQuery 库(在小提琴中,我没有看到包含的库)。

document.getElementById('fileLabel').show();

在 jQuery 中,您可以将其简化为

$('#fileLabel').show();

.show()/.hide() 是 jQuery 方法。

喜欢

$(document).ready(function () {
    $('#c1').on('change', function(){
        if ($(this).prop('checked')) {
            $('#filelabel').show();
            $('#fileBox').show();
        }
        else {
            $('#filelabel').hide();
            $('#fileBox').hide();
        }
    });
});

【讨论】:

    【解决方案2】:

    小提琴中存在多个问题

    1. Select No Wrap head/body in the second dropdown in the left panel - when onload is selected your script is added with in a window.onload = function(){//your code} wrapper making the function local to the wrapper function.

    2. 页面中需要包含jQuery库

    3. show()/hide() 等方法绑定到 jQuery 包装对象

      只有文本框

    然后

    jQuery(function () {
        $('#c1').change(function () {
            $('#fileLabel, #fileBox').toggle(this.checked)
        }).change()
    })
    

    演示:Fiddle

    【讨论】:

      【解决方案3】:

      这个功能可以工作,请在html的head部分写javascript

      <head>
      <script>
      function showHide() {
          alert('called');
          var chbox = document.getElementById("c1");
          var vis = "none";
          for(var i=0;i<chboxs.length;i++) { 
              if(chbox.checked){
                  alert('checked');
                  document.getElementById('fileLabel').show();
                  document.getElementById('fileBox').show();
                  break;
              }
              else
              {
                  alert('unchecked');
                  document.getElementById('fileLabel').hide();
                  document.getElementById('fileBox').hide();
                  break;
              }
          }
      }
      </script>
      </head>
      

      【讨论】:

        【解决方案4】:

        在左侧面板中 Framework and Extensions >> 第二个下拉集 No wrap - in

        它将开始工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-21
          • 2013-09-28
          • 1970-01-01
          • 2013-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多