Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中解决这种特殊情况?_Javascript_Jquery - Fatal编程技术网

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>
    
    
    新文件
    数字

    弹出窗口/灯箱是否与表单的来源相同?也许给我们看代码?是的,相同的来源。对不起,我不能给你看代码。因为它不属于我。我是为一个客户写的。弹出窗口/灯箱与表单的来源相同吗?也许给我们看代码?是的,相同的来源。对不起,我不能给你看代码。因为它不属于我。我是为一位客户写的。