Я знаю, что этот вопрос старый, но вот как я это сделал на ASP.Net (C #) с использованием jQuery.
//Create the form in a jQuery object
$("<form action='/FormPostTo.aspx' method='post' target='nameofframe'></form>")
//Get the value from the asp textbox with the ID txtBox1 and POST it as b1
.append($("<input type='hidden' name='b1' />").attr('value',$('#<%= txtBox1.ClientID %>').val()))
//Get the value from the asp textbox with the ID txtBox2 and POST it as b2
.append($("<input type='hidden' name='b2' />").attr('value',$('#<%= txtBox2.ClientID %>').val()))
//Add the form to the body tag
.appendTo('body')
//Submit the form which posts the variables into the iframe
.submit()
//Remove the form from the DOM (so subsequent requests won't keep expanding the DOM)
.remove();
Просто короткое примечание: я сделал такие входные теги, а не их конкатенацию, на случай, если в значении текстового поля есть кавычка ('
). Если вы объедините его, он испортит HTML и не сможет правильно проанализировать.
Кроме того, это удаляет форму из DOM после ее использования, поэтому вы не заполняете DOM элементами формы, если публикуете в iFrame несколько раз.
Одно небольшое изменение, которое вы могли бы сделать, - это создать элемент формы, если он не существует, а затем просто ссылаться на него по ID, если он уже существует, и использовать его повторно.