通常,我看到人们使用表单来创建输入:
<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>它使我的提交按钮不起作用,但一旦我移除表单标签,它就是工作:
<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就像这样:
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;
}为什么我不能把所有的输入都封装在表单中呢?它需要额外的代码吗?
发布于 2016-11-21 18:20:02
它使我的提交按钮无效
不,你的提交按钮工作正常。事实上,这就是你所看到的问题所在。您的JavaScript代码正在执行,但是从显示任何输出到重新加载页面(因为您已经提交了表单)之间的时间几乎是瞬间的。
所以你的JavaScript起作用了。你的表格也能用。一切都正常。
但是一旦我移除表单标记它的工作
不完全是。当您移除form标记时,表单提交将不再起作用。您所做的就是阻止表单提交,因为您已经没有表单了。
为什么我不能把所有的输入都封装在表单中呢?
你可以的。但这真的取决于你想做什么。如果您有一个表单,并且要提交它,请使用一个form元素。如果你不想以表格的形式提交任何东西,你可以忽略它。这是唯一的目的。
您可以在页面上的任何地方输入,它们不需要以表单的形式出现。如果您只想通过JavaScript与它们交互,那么您可以不使用form元素进行交互。
发布于 2016-11-21 18:20:31
表单用于创建HTTP方法(如POST或PUT)。因此,如果您需要输入的信息参与到http方法中,则需要使用表单。如果你的提交按钮只是为了内部的东西,不要使用表单。
更多信息:在这里输入链接描述
发布于 2016-11-21 18:23:34
表单将将数据发送到操作中指定的文件,此事件由窗体内的<input type="submit"/>触发。
您可以在表单中使用<button>标记来实现您想要的结果。
https://stackoverflow.com/questions/40726757
复制相似问题