我有这个脚本用GET发送变量recordID(并且工作正常)
<input type="hidden" id="suggest1_hidden" name="suggest1_hidden" value="">
<input name="suggest1" type="text" class="suggest_table {th : ['nome', 'email', 'tel', 'cell']}" id="suggest1" style="width:650px;" alt="Adm_ut_search.php" />
<span id="comando"><span class="button">Dettagli utente</span></span>
<script language="javascript">
$(document).ready(function()
{
$('#comando').click(function () {
var url="Adm_ut_view_details.php?recordID=" + $('#suggest1_hidden').val()
document.location.href = url
});
});
</script>
我需要用POST发送变量,我写了这个...但是做了工作
<form id="myForm" action="Adm_ut_view_details.php" method="post"/>
<input type="hidden" id="suggest1_hidden" name="suggest1_hidden" value="">
<input name="suggest1" type="text" class="suggest_table {th : ['nome', 'email', 'tel', 'cell']}" id="suggest1" style="width:650px;" alt="Adm_ut_search.php" />
<input name="recordID" type="hidden" id="userID" value="" />
<button type="submit" id="comando">Submit</button>
</form>
<script language="javascript">
$(function(){
$('#myForm').on('submit', function(e){
document.getElementById('userID').value=+ $('#suggest1_hidden').val()
$('#myForm').submit();
});
});
</script>
我做错了什么?
答案 0 :(得分:1)
您需要对表单字段进行任何本质上的不同,因为您正在发送POST请求而不是GET请求。只要不需要JavaScript预提交处理,您只需将表单action
更改为POST
即可。
而且,隐藏的表单字段将与其他表单字段一起发送,所以为什么还要将它连接到userID
?
但是,对于你的问题和你的代码,你有一个错字:
document.getElementById('userID').value =+ $('#suggest1_hidden').val()
应该是:
document.getElementById('userID').value += $('#suggest1_hidden').val()
现在,您拥有设置submit
事件处理程序的代码,但您没有设置隐藏表单字段值的代码。这需要在提交之前完成。
此外,您需要阻止表单首先提交,以便您可以修改表单字段值。
$(function(){
$('#myForm').on('submit', function(e){
e.preventDefault(); // Stop the submit
// YOU NEED TO MAKE SURE THAT THE HIDDEN FORM FIELD'S
// VALUE HAS BEEN SET BY THIS POINT.
document.getElementById('userID').value += $('#suggest1_hidden').val()
$('#myForm').submit(); // Then manually submit
});