Javascript <;a href>;而不是<;输入提交>;按钮

Javascript <;a href>;而不是<;输入提交>;按钮,javascript,html,Javascript,Html,我原来有一个提交按钮 <input class="submit" type="submit" class="input" value="Add" name="command" /> 有什么建议吗?问题是,网站没有发现这个特定的被点击,因此不会运行我的php代码。添加一个隐藏字段,并在javascript中添加一行额外的内容: <input type="hidden" name="command" /> <a href="javascript: document.r

我原来有一个提交按钮

<input class="submit" type="submit" class="input" value="Add" name="command" />

有什么建议吗?问题是,网站没有发现这个特定的
被点击,因此不会运行我的php代码。

添加一个隐藏字段,并在javascript中添加一行额外的内容:

<input type="hidden" name="command" />
<a href="javascript: document.register.command.value='Add'; document.register.submit();">
    Submit
</a>


也就是说,您最好使用CSS来设计提交按钮的样式,使其看起来像您所希望的那样。

首先,我强烈推荐jquery。当使用javascript时,它会产生巨大的差异,并简化许多问题,尤其是跨不同浏览器的问题

我建议您创建一个隐藏的输入来设置值

<script type="text/javascript">
function submitFormWithValue(val){
  document.getElementById('command').value = val;
  document.forms["test"].submit();
}
</script>

<form id="test" name="test" action="#" method="post">
<input type="hidden" name="command" value="" />
</form>

<a href="javascript:submitFormWithValue('foo')">Submit</a>

函数submitFormWithValue(val){
document.getElementById('command')。value=val;
文件。表格[“测试”]。提交();
}

我没有测试我的代码,但它应该足够近,可以看到它是如何工作的。再次查看jquery,它将使处理javascript变得更加容易

正如佩卡所建议的:不要这样做。这将使表单不必要地依赖JavaScript

最好使用CSS将按钮样式设置为链接:

input.submit {
  margin: 0;
  padding: 0;
  border: none;
  color: blue;
  background-color: transparent;
  text-decoration: underline;
}

实际的问题是什么,为什么有两个类属性?+1这个。链接版本不仅依赖于JavaScript,而且在与其他链接操作(如中键单击、拖放或右键单击书签)交互时,它的反应也非常糟糕。如果它是一个动作,而不是指向某个地方的链接,那么它应该是一个按钮。另外,
javascript:
链接是有害的,不应该使用。将按钮样式设置为不像按钮,有一个小小的限制:IE将始终添加一个1px的额外填充,您无法删除,并且在单击时会使按钮的内容移动一个像素。这通常无关紧要,但如果您需要按钮的大小达到像素级,则必须使用特定于浏览器的样式表规则来考虑填充。如果您需要将标记中的其他元素用作提交,则无法对输入进行样式设置。例如,“提交”按钮有一个渐变边框,因此需要在“提交”按钮内添加一个span标记。@OB7在这种情况下,请使用
。另外,当使用较新的CSS功能时,如
:before
/
:after
等,额外的元素通常是不必要的。通常可以避免使用JavaScript。每个人都有很好的答案,但最后我使用了jQuery。我一直试图避免使用jQuery,因为我认为它很难使用。但一旦你了解了它的工作原理,它确实会让一切变得更简单。
input.submit {
  margin: 0;
  padding: 0;
  border: none;
  color: blue;
  background-color: transparent;
  text-decoration: underline;
}