Javascript 如何在jquery中解决这种特殊情况?
我不是Javascript大师。但在为一个应用程序编写Jquery时,我发现自己陷入了一个非常棘手的境地。 情况: 我有一个不同领域的表格。包含多个值的字段之一,如电话号码。我将这些数字填入一个弹出式灯箱中。现在,我面临的问题是,我想点击表单按钮提交表单,但我的数字来自弹出框。好的,让我试着用点来描述整个流程:-Javascript 如何在jquery中解决这种特殊情况?,javascript,jquery,Javascript,Jquery,我不是Javascript大师。但在为一个应用程序编写Jquery时,我发现自己陷入了一个非常棘手的境地。 情况: 我有一个不同领域的表格。包含多个值的字段之一,如电话号码。我将这些数字填入一个弹出式灯箱中。现在,我面临的问题是,我想点击表单按钮提交表单,但我的数字来自弹出框。好的,让我试着用点来描述整个流程:- 表单有多个字段。对于一个字段编号,我显示弹出框 我点击弹出框上的一个按钮,它会将我发送到表单。但我无法在表格中找到这些数字 最后单击表单按钮,它将所有信息发送到服务器端 但是我没有在表
注:-我尽力把我的问题说清楚。但如果你们觉得我的话不太清楚,对不起 我不完全确定我是否理解,但我想尝试一下: 选项1)使用$(selector).val()将lightbox中的所有值从后面写入第一个表单
选项2)将整个lightbox表单复制到第一个表单内的隐藏div中。我不完全确定我是否理解,但我想尝试一下: 选项1)使用$(selector).val()将lightbox中的所有值从后面写入第一个表单
选项2)将整个lightbox表单复制到第一个表单内的隐藏div中。弹出框元素可能添加到表单外部,因此提交表单时不会提交弹出框中的任何输入元素。要检查这一点,请使用DOM检查器(即firefox中的firebug或ie8或chrome中的开发工具)查看包含lightbox的元素的位置(通常位于页面的末尾)
要解决这个问题,您可以配置lightbox,将其div添加到表单中,或者只需使用一点javascript来获取弹出窗口中输入元素的值,并在提交之前填充表单中实际存在的隐藏输入。弹出框元素可能被添加到表单之外,因此,当您提交表单时,弹出窗口中的任何输入元素都不会被提交。要检查这一点,请使用DOM检查器(即firefox中的firebug或ie8或chrome中的开发工具)查看包含lightbox的元素的位置(通常位于页面的末尾)
要解决这个问题,您可以配置lightbox,将其div添加到表单中,或者只需使用一点javascript来获取弹出窗口中输入元素的值,并在提交之前填充表单中的隐藏输入。如果我正确理解您的问题,一种解决方案是设置关闭弹出窗口/lightbox的控件,以便首先填充基础表单上的一些隐藏字段。从lightbox窗口中的表单元素中获取值:
$('#the_lightbox').find('.multiple_phone_fields')
.each( function(i,e){ // for each field
$('<input name=' + $(this).attr('name') + 'type="hidden"/>') // new, hidden
.val(this.value) // set hidden field value from this field
.appendTo('#the_main_form'); // and add to the underlying form
});
$(“#灯箱”)。查找(“.多个电话字段”)
.每个(函数(i,e){//
$(“”)//新建,隐藏
.val(this.value)//从该字段设置隐藏字段值
.appendTo(“#主表单”);//并添加到基础表单
});
然后,当您提交
#主表单
时,这些隐藏字段和值将出现。显然,您需要根据弹出窗口或lightbox的具体情况调整选择器。如果我正确理解您的问题,一种解决方案是将关闭弹出窗口/lightbox的控件设置为首先填充基础窗体上的一些隐藏字段。从lightbox窗口中的表单元素中获取值:
$('#the_lightbox').find('.multiple_phone_fields')
.each( function(i,e){ // for each field
$('<input name=' + $(this).attr('name') + 'type="hidden"/>') // new, hidden
.val(this.value) // set hidden field value from this field
.appendTo('#the_main_form'); // and add to the underlying form
});
$(“#灯箱”)。查找(“.多个电话字段”)
.每个(函数(i,e){//
$(“”)//新建,隐藏
.val(this.value)//从该字段设置隐藏字段值
.appendTo(“#主表单”);//并添加到基础表单
});
然后,当您提交#主表单
时,这些隐藏字段和值将出现。显然,您需要根据弹出窗口或灯箱的具体情况调整选择器。您好,这有帮助吗
. 它会创建一个弹出窗口,您可以在那里编辑数据,然后填充回主页面,该主页面在关闭弹出窗口之前由opener引用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript">
<!--
function fn() {
var popupwin = window.open("","","width=500,height=300");
popupwin.document.open();
popupwin.document.write("<html><head><script>function onOk(){opener.parent.document.getElementById('txtnumberfield').value=document.getElementById('txtpopup').value; window.close();}</script></head><body>Here are some popup values <input type='text' value='value from popup' name=txtpopup id=txtpopup />"+
"<input type=button onclick='onOk()' value='Done editing' /></body></html>");
popupwin.document.close();
}
//-->
</script>
<BODY>
<form action="#">
Number <input type="text" id="txtnumberfield" /> <input type="button" value="open popup" onclick="fn();" /><br/>
<input type="submit" />
</form>
</BODY>
</HTML>
新文件
数字
您好,这有帮助吗
. 它会创建一个弹出窗口,您可以在那里编辑数据,然后填充回主页面,该主页面在关闭弹出窗口之前由opener引用
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript">
<!--
function fn() {
var popupwin = window.open("","","width=500,height=300");
popupwin.document.open();
popupwin.document.write("<html><head><script>function onOk(){opener.parent.document.getElementById('txtnumberfield').value=document.getElementById('txtpopup').value; window.close();}</script></head><body>Here are some popup values <input type='text' value='value from popup' name=txtpopup id=txtpopup />"+
"<input type=button onclick='onOk()' value='Done editing' /></body></html>");
popupwin.document.close();
}
//-->
</script>
<BODY>
<form action="#">
Number <input type="text" id="txtnumberfield" /> <input type="button" value="open popup" onclick="fn();" /><br/>
<input type="submit" />
</form>
</BODY>
</HTML>
新文件
数字
弹出窗口/灯箱是否与表单的来源相同?也许给我们看代码?是的,相同的来源。对不起,我不能给你看代码。因为它不属于我。我是为一个客户写的。弹出窗口/灯箱与表单的来源相同吗?也许给我们看代码?是的,相同的来源。对不起,我不能给你看代码。因为它不属于我。我是为一位客户写的。