首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onClick没有在表单中工作吗?

onClick没有在表单中工作吗?
EN

Stack Overflow用户
提问于 2016-11-21 18:15:26
回答 4查看 1.1K关注 0票数 1

通常,我看到人们使用表单来创建输入:

代码语言:javascript
复制
<form action="">
<table>
    <tr>
        <td><label for="Fname">First Name</label></td>
        <td><input type="text" name="Fname" class="form-control" id="fname"></td>
    </tr>
    <tr>
        <td><label for="Lname">Last Name</label></td>
        <td><input type="text" name="Lname" class="form-control" id="lname"></td>
    </tr>
    <tr>
        <td><label for="address">address</label></td>
        <td><input type="text" name="address" class="form-control" id="address"></td>
    </tr>
    <tr>
        <td><label for="phone">phone</label></td>
        <td><input type="text" name="phone" class="form-control" id="phone"></td>
    </tr>
    <tr>
        <td><input type="submit" value="submit" onclick="submit();"></td>
    </tr>
</table>
</form>

它使我的提交按钮不起作用,但一旦我移除表单标签,它就是工作:

代码语言:javascript
复制
<table>
    <tr>
        <td><label for="Fname">First Name</label></td>
        <td><input type="text" name="Fname" class="form-control" id="fname"></td>
    </tr>
    <tr>
        <td><label for="Lname">Last Name</label></td>
        <td><input type="text" name="Lname" class="form-control" id="lname"></td>
    </tr>
    <tr>
        <td><label for="address">address</label></td>
        <td><input type="text" name="address" class="form-control" id="address"></td>
    </tr>
    <tr>
        <td><label for="phone">phone</label></td>
        <td><input type="text" name="phone" class="form-control" id="phone"></td>
    </tr>
    <tr>
        <td><input type="submit" value="submit" onclick="submit();"></td>
    </tr>
</table>

我的js就像这样:

代码语言:javascript
复制
var Fname= document.getElementById("fname");
var Lname= document.getElementById("lname");
var Address= document.getElementById("address");
var Phone= document.getElementById("phone");
var Result= document.getElementById("result");


function submit(){
    var valueFname=Fname.value;
    var valueLname=Lname.value;
    var valueAddress=Address.value;
    var valuePhone=Phone.value;
    Result.innerHTML="hello, "+valueFname+" "+valueLname+" good to see you. Your contact number is "+valuePhone+" , and your address "+valueAddress;
}

为什么我不能把所有的输入都封装在表单中呢?它需要额外的代码吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-21 18:20:02

它使我的提交按钮无效

不,你的提交按钮工作正常。事实上,这就是你所看到的问题所在。您的JavaScript代码正在执行,但是从显示任何输出到重新加载页面(因为您已经提交了表单)之间的时间几乎是瞬间的。

所以你的JavaScript起作用了。你的表格也能用。一切都正常。

但是一旦我移除表单标记它的工作

不完全是。当您移除form标记时,表单提交将不再起作用。您所做的就是阻止表单提交,因为您已经没有表单了。

为什么我不能把所有的输入都封装在表单中呢?

你可以的。但这真的取决于你想做什么。如果您有一个表单,并且要提交它,请使用一个form元素。如果你不想以表格的形式提交任何东西,你可以忽略它。这是唯一的目的。

您可以在页面上的任何地方输入,它们不需要以表单的形式出现。如果您只想通过JavaScript与它们交互,那么您可以不使用form元素进行交互。

票数 2
EN

Stack Overflow用户

发布于 2016-11-21 18:20:31

表单用于创建HTTP方法(如POST或PUT)。因此,如果您需要输入的信息参与到http方法中,则需要使用表单。如果你的提交按钮只是为了内部的东西,不要使用表单。

更多信息:在这里输入链接描述

票数 0
EN

Stack Overflow用户

发布于 2016-11-21 18:23:34

表单将将数据发送到操作中指定的文件,此事件由窗体内的<input type="submit"/>触发。

您可以在表单中使用<button>标记来实现您想要的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40726757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档