我有一个页面,我在输入中输入文本,这是一个简单的表单。我有一个按钮,当我按下按钮时,是否可以打开另一个页面并通过jquery将数据发布到这个新窗口。我不是在谈论ajax,因为我想打开一个新窗口,然后转到持有帖子表格的新页面。
所以我有第1页的表单和输入1.我在输入1中输入test然后如果我点击提交,它将打开一个新的php页面,其中有一个
<code>
<div id="grid1" ui-grid="resultsGrid" class="myGrid" ui-grid-grouping></div>
</code>
它将被填充,以便代码自动执行。实际上,这是为了避免输入网址中的所有内容并转到该网址。
似乎我不够清楚。我知道如何使用表单和提交按钮来完成它。但我想通过jquery提交表单,所以当我点击一个按钮或其他会被我的javascript截获的内容时,它会查找输入然后重定向到另一个页面并发布我想要的数据。
答案 0 :(得分:1)
如果我理解正确,您希望从父窗口打开的子窗口(弹出窗口)访问父窗口窗体输入值。
如果是这种情况,我建议您查看window.opener
属性
http://www.w3schools.com/jsref/prop_win_opener.asp
如果您有这样的父窗口:
HTML:
<form id="testForm">
<input type="text" id="testVariable" value="" />
<input type="submit" />
</form>
JS:
$(document).ready(function () {
$('#testForm').on('submit', function(e){
e.preventDefault();
window.open('http://www.yourdomain.com/chilwindow.php', 'ChildWindow', 'menubar=0,resizable=1,location=0,scrollbars=0,status=0,toolbar=0,width=580,height=520');
});
});
然后在您的子窗口/弹出窗口(http://www.yourdomain.com/chilwindow.php)中,您应该可以像这样访问父窗口:
$(document).ready(function () {
var testVariableNew = window.opener.$("#testVariable").val();
console.log('Got value from parent window: ' + testVariableNew);
});
或者:
$(document).ready(function () {
var testVariableNew = $('#testVariable', window.opener.document).val();
console.log('Got value from parent window: ' + testVariableNew);
});
如果您想要发出POST请求,请执行以下操作:
$( "#testForm" ).submit(function(e) {
e.preventDefault();
var myVariable = $(this).find("#testVariable").val();
var myUrl = $(this).attr("action");
var posting = $.post( myUrl , { temp: myVariable } );
posting.done(function(result) {
console.log(result);
});
});
答案 1 :(得分:0)
jquery.form.js插件完全符合您的要求。 http://malsup.com/jquery/form/
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
// wait for the DOM to be loaded
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function(response) {
alert("The script said: "+response);
});
});
</script>
</head>