2013-04-17 65 views
12

我有一个表格<input type="submit"。在铬提交没有做任何事情。在开发人员工具中的“网络”选项卡上,我什么都看不到。开发人员工具也没有错误。同时,如果我保存页面并打开保存的页面,则在按下提交按钮后,我会看到“网络”选项卡中显示的内容。这发生在Chrome和Firefox中。这在IE中按预期工作。提交按钮不起作用

有没有人有事后看,我应该看看?

编辑:我不需要直接的答案,我只需要知道,我应该在哪里看。如果有人发布了一个方向,这会帮助我解决我的问题,我会接受它作为一个正确的答案。

EDIT2:一个页面的结构是这样的:

html 
    head 
    body 
     div 
     div 
      form 
      form 
      form 
      form 
      form 
       input 
       input 
       table 
       table 
        tbody 
         tr..td..input type=submit 

EDIT3:我们发现的实际问题,这是在一个页面的链接,包含href="#",点击该链接后提交停下来因为#被添加到URL的末尾,并且由于表单的action是空的,所以它从当前URI获取URI,其中包含#,因此浏览器不会提交,而是在当前页面上跳转。

+8

我们需要代码... – Jace

+0

@Jace当我从我的web应用程序打开一个页面时,问题就在那里,但是如果我保存一个页面,提交会做一些事情。所以HTML代码在这里没有帮助。我也不需要直接的答案,问题是什么。我只需要一个方向,看什么。 – dhblah

+1

...它在表格内吗? 表单格式是否正确,或者是否打破了HTML? 表单是否有动作和方法,它们是否正确?你是在本地开发,并使用相对路径,当它应该在服务器/本地主机上运行?我们不知道...... – Norguard

回答

10

如果您没有使用任何javascript/jquery进行表单验证,那么表单的简单布局将如下所示。

HTML文档的主体中:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
    <input type="text" name="fname" id="fname" />  
    <input type="submit" value="submit"/> 
</form> 

你需要确保你有表单标签内提交按钮,并为其分配适当的行动。比如发送到一个php文件。

要获得更直接的答案,请提供您正在使用的代码。

您可能会发现使用如下:http://www.w3.org/TR/html401/interact/forms.html

+0

非常感谢您,我认为可能存在的一个问题是,该表单中存在空操作属性。我会进一步调查。 – dhblah

+0

在我的情况下,我有一个绝对定位的div,没有覆盖在按钮上的内容。从一个例子复制并粘贴标记,花了我好几天的时间来确定这个看不见的元素是罪魁祸首。 –

12

您使用的是HTML5吗?如果是这样,请检查您的表单中是否有<input type="hidden">以及required。删除那个required属性。 Internet Explorer不会采用这个属性,所以它可以工作,但Chrome会。

+0

这是现货。我不知道要花多长时间才能想到这一点。 –

3

检查,如果你使用任何类型的网页上的jQuery/JavaScript验证,并尝试关闭它,看看会发生什么。您可以使用浏览器的开发人员工具查看是否正在加载任何带有验证或验证的JavaScript文件。您还可以查找隐藏的表单元素(即设置为显示的样式:无;或类似的东西),并确保没有隐藏的验证错误的那些未呈现。

+1

你救了我,但你有什么想法如何使用相同的按钮来实现表单提交和表单验证? –

+0

是的,理想情况下,它应该与许多验证库和工具一起工作。他们应该配合表格。如果表单提交不起作用,那么可能是有问题。例如,我在Nuget Gallery开源网站使用的特定版本的jquery validate插件中发现了一个错误。它是基于文件扩展名正确验证的,但是该错误阻止了显示验证错误。所以我进去修复了这个bug,虽然我懒懒地没有发出pull请求来修正它们库中的bug。 –

3

我今天遇到这个问题,这个问题被我阻止事件的默认操作文件的onclick:

document.onclick = function(e) { 
    e.preventDefault(); 
} 

文档的onclick通常用于事件委托,但它是错误的,以防止默认为每一个事件,你必须只为需要的元素:

document.onclick = function(e) { 
    if (e.target instanceof HTMLAnchorElement) e.preventDefault(); 
} 
1

我遇到了一个朋友的HTML代码和他的情况下,他失踪了引号。

例如:

<form action="formHandler.php" name="yourForm" id="theForm" method="post">  
<input type="text" name="fname" id="fname" style="width:90;font-size:10>  
<input type="submit" value="submit"/> 
</form> 

在这个例子中,在输入文本FNAME缺失报价只会呈现提交按钮未使用和表单不会提交。

当然,这是一个不好的例子,因为我应该首先使用CSS;)但无论如何,请检查所有单引号和双引号,以查看它们是否正确关闭。

此外,如果您有像中心这样的标签,请将其移出表单。

<form action="formHandler.php" name="yourForm" id="theForm" method="post"> 
<center> <-- bad 

看起来很奇怪,它可能会产生影响。