使用 jquery 警报对话框插件,如何将表单中的值发送到回调功能?表格在警报中

Posted

技术标签:

【中文标题】使用 jquery 警报对话框插件,如何将表单中的值发送到回调功能?表格在警报中【英文标题】:Using jquery alerts dialog plugin, how do I send a value in a form to a callback feature? The form is in the alert 【发布时间】:2010-05-12 22:58:08 【问题描述】:

使用jquery alerts dialog plugin,如何将显示在警报中的表单中的值发送到回调功能?表单在alert中,点击OK后回调发生。

这是有效的代码,忽略此代码,因为它是一个有效的示例,它基本上显示了如何序列化表单。此代码取自 .serialise 页面的 Jquery 文档。有问题的代码在下面。

<?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?><form id="changecategoryForm2"><select id="newflex" name="thecatidichose"> <option value=""></option> <?php while($catrow =mysql_fetch_array($moveablecats)) ?> <option value="<?php echo "$catrow[id]"; ?>"><?php echo "$catrow[title]"; ?> </option><?php  ?></select>  </form>   <p><tt id="results"></tt></p>


<script>
    function showValues() 
      var str = $("form#changecategoryForm2").serialize();
      $("#results").text(str);
    
    $(":checkbox, :radio").click(showValues);
    $("select").change(showValues);
    showValues();
</script>

将该工作代码与我在下一个代码下方的 Jquery 警报对话框插件中使用的代码进行比较。 下面是显示警报的默认代码。

jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) 
    if( r ) alert('You entered ' + r);
);

这是我将上述表单的工作 html 代码放入警报中,这是一种称为提示的 javascript 警报。

我试图传递给回调函数的变量是一个序列化的表单,其 id 为 changecategoryForm

请注意,上面的工作示例 是一种叫做 更改类别表单2 下面有问题的表格叫做 更改类别表格

这是有问题的代码。

$(".changecategory").click( function() 
   <?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?>
   var categoryid = $(this).attr("categoryid");
   var itemid = $(this).attr("itemid");
   var itemid2 = $(this).attr("itemid");
   var itemtitle = $(this).attr("itemtitle");
   var parenttag = $(this).parent().get(0).tagName;
   var removediv = "itemid_" +itemid;   
   jAlert(
      'Which category do you want to move <b>'+itemtitle+ '</b> to?<br><?php $moveablecats = mysql_query("SELECT * FROM categories WHERE id != '1'  "); ?><form id="changecategoryForm"><select id="newflex" name="thecatidichose"> <option value=""></option> <?php while($catrow =mysql_fetch_array($moveablecats)) ?> <option value="<?php echo "$catrow[id]"; ?>"><?php echo "$catrow[title]"; ?> </option><?php  ?></select>  </form>   <p><tt id="results"></tt></p>','Change category', function(r)    
         // $(parenttag).fadeOut('slow');  
         $("#"+removediv).fadeOut('slow');  

         var newflex = $("#newflex").val();
         alert(newflex); // this shows nothing    
         alert($("#changecategoryForm").serialize());
         alert('categoryid ' + categoryid + ' itemid ' + itemid + '.'); //this shows the variables

         jAlert(''+ itemtitle +' has been successfully moved.', 'Success');
       // this brace closes function(r)
   ); 
);

【问题讨论】:

你过长的 php 代码行会害死小猫... 它必须很长,我不能按回车,否则javascript会失败。 【参考方案1】:

我自己通过重构代码解决了这个问题。 无论如何,谢谢你的时间。 结局。

【讨论】:

以上是关于使用 jquery 警报对话框插件,如何将表单中的值发送到回调功能?表格在警报中的主要内容,如果未能解决你的问题,请参考以下文章

当表单中没有任何更改时显示警报框

一个多用途的警报插件,confirm&;对话框,具有扩展功能。

使用 Jquery 验证插件提交 Ajax 表单不起作用

jQuery Dialog - 动画对话框从中心移动到右上角

jQuery - 如何在显示警报消息后阻止表单发布数据?

如何从 Jquery 对话框表单提交中调用父页面上的回发?