Javascript发送变量帖子

时间:2018-01-30 02:09:47

标签: javascript forms

我有这个脚本用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>

我做错了什么?

1 个答案:

答案 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
});