代码之家  ›  专栏  ›  技术社区  ›  Tim Willis

HTML提交表依赖于复选框

  •  0
  • Tim Willis  · 技术社区  · 7 年前

    我使用的是一个提交按钮,它重定向并用SSJS保存输入。

    我只想更新选中复选框的记录。

    https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_submit

    使用此代码:

     <!DOCTYPE html>
        <html>
        <body>
        
        <h2>HTML Forms</h2>
        
        <form action="/action_page.php">
        
        <table>
        <tr>
        <td>
        Check for save
        </td>
          <td>
          First name
          </td>
          <td>
        Last Name  
          </td>
          </tr>
        
          <tr>
          <td>
            <input type="checkbox" id="horns" name="feature" value="horns" />
          </td>
          <td>
          <input type="text" name="firstname" value="Mic1key">
          </td>
          <td>
          <input type="text" name="lastname" value="Mouse">
          </td>
        </tr>
          <tr>
          <td>
          <input type="checkbox" id="horns" name="feature" value="horns" />
          </td>
          <td>
          <input type="text" name="firstname" value="Mic1key">
          </td>
          <td>
          <input type="text" name="lastname" value="Mouse">
          </td>
        </tr>
          </table>
          <input type="submit" value="Submit">
        </form> 
        </body>
        </html>

    所以这是可行的,因为在SSJS中,我们可以检查哪些值为checked,但我担心一旦5k+记录在表中,就会出现性能问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Brandon Carr    7 年前

    如果您只想在选中复选框时提交表单,则可以为“submit”事件添加事件侦听器,并在复选框未选中时阻止默认值,如下所示:

    let submitButton = document.getElementById('mySubmitBtn');
    let checkbox = document.getElementById('myCheckbox');
    
    submitButton.addEventListener('submit', function(e){
        if(!checkbox.checked){
            e.preventDefault();
        }
    });
    

    这样,只有选中复选框时表单才会提交。

    这个问题好像是在这里解决的 Submit only non empty inputs