2013-05-15 136 views
1

我不知道是否有一个干净的方式来做一个HTML表单,如果用户推送一个发布按钮,并且可以发送以及get方法,如果用户按下获取按钮。我需要这个,因为我想显示一个既可以输入新数据也可以搜索数据库中现有数据的表单。如果用户想要在数据库中输入数据,他们可以填写表单并通过“发送”按钮(POST)发送,如果他们不确定他们想要什么,他们可以部分填写表单并将搜索按钮(GET)接收关于数据库内容的一些见解。从我所知道的方法是为表单定义的,而不是提交按钮。任何想法如何我可以做到这一点没有JavaScript?或与JavaScript?html,通过邮件发送表单或按提交按钮

+0

你可以用javascript/jquery标记你的问题(例如)如果你正在寻找利用这些的解决方案。 –

+0

我宁愿有一个纯粹的HTML解决方案。如果唯一有效的解决方案使用JavaScript,那么我会接受它,这就是为什么我把'与JavaScript'。 – Bastian

+0

我不知道只能使用HTML的方法。但我已经回复了一个JS解决方案。如果你还没有使用jQuery,那么使用它就没有意义了,因为JS就足够了。 – user1596138

回答

2

虽然你不应该需要这个功能,但我会回答你的问题。

这里。 首先,您应该为表单分配一个ID。我们的样本表格将具有ID'YYYY'。

<form action="whatever" id="YYYY" method="" > 



<input type="button" onClick="usingget();" value="GET" /> 
<input type="button" onClick="usingpost();" value="POST" /> 

</form> 


<script type="text/javascript"> 
function usingget() { 
document.getElementById('YYYY').method = 'GET'; 
setTimeout(function(){ 
document.getElementById('YYYY').submit(); 
}},1000); 
function usingpost() { 
document.getElementById('YYYY').method = 'POST'; 
setTimeout(function(){ 
document.getElementById('YYYY').submit(); 
}},1000); 
</script> 

现在,当您单击其中一个按钮时,它将更改方法。 编辑:现在有一个1秒的延迟,因为我很累,不确定表单是否会在没有它的方法更改之前提交。

+0

在改变表单之前,无论默认方法是什么,都没有提交表单的危险(因为它们是“提交”按钮)?也许另一种选择是使用标准的“输入”按钮,然后使用函数来提交表单。 – blankabout

+0

这看起来不错,尽管@blankabout说应该考虑在内。只是一个问题,你为什么说我“不应该需要这个功能”? – Bastian

+0

当我为自己做了类似的事情时,最初出现在我的脑海里。为了解决我的问题,我需要延迟其他与此无关的原因。也许你应该让按钮调用函数,然后改变方法,延迟并提交表单。我错了,你也不需要这个功能。 – user1596138