在单独的javascript函数中调用ajax

在单独的javascript函数中调用ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不熟悉jquery和ajax,但我想在单独的javascript函数中调用ajax,因为JSP文件是动态创建的,JSP文件中的按钮id也是使用for循环创建的。 我正在分享我的代码,是否有一个解决方案可以将按钮id传递给jquery函数,并通过jquery将该id传递给ajax调用 下面是.js文件通过jquery调用ajax的代码: function insertData(idvalue) { var forsplit = idvalue.id.split("_"); var qtsrl =

我不熟悉jquery和ajax,但我想在单独的javascript函数中调用ajax,因为JSP文件是动态创建的,JSP文件中的按钮id也是使用for循环创建的。 我正在分享我的代码,是否有一个解决方案可以将按钮id传递给jquery函数,并通过jquery将该id传递给ajax调用

下面是.js文件通过jquery调用ajax的代码:

function insertData(idvalue)
{
var forsplit = idvalue.id.split("_");
var qtsrl = forsplit[2];
var qtno = forsplit[3];

var queryid=idvalue.id;

var qtsrl_id = document.getElementById("qstn_srl_"+qtsrl+"_"+qtno).value;
var qstn_no_id = document.getElementById("qstn_no_"+qtsrl+"_"+qtno).value;

$.ajax(
{
    type: "GET",
    url: "aftermarksave.jsp",
    data:{setvalues : qtsrl_id},
    contentType: "application/json",
    async: false,
    success: function (data) 
    {
        alert("Data passed");
    },
    error: function(data) 
    {
        alert('Not passed Data: '+qtsrl_id);
    }   
});

}
这里我想通过Jquery:Ajax将“qtsrl_id”传递给“aftermarksave.jsp”

这是我动态生成的.JSP文件,“this”被传递给javascript函数,并从“this”对象提取当前id

fw1.write(“+getmarkentry+”);
fw1.写(“”);
fw1.写(“
”); fw1.写入(“序列号”); fw1.写(“
”); fw1.写(“”); fw1.写(“
”); fw1.书面(“问题编号”); fw1.写(“
”); fw1.写(“”); fw1.写(“
”); fw1.写(“”); fw1.写(“
”); if(getmarkentry.equals(“”) { fw1.写(“”); } 其他的 { fw1.写(“”); } fw1.写(“”); fw1.写(“”);

在上面的代码中,“insertData(this)”是在单击按钮时调用的,我希望在单击按钮时通过jquery调用ajax。我们是如何在javascript函数中实现这一点的。

您可以使用如下内容:

将Ajax脚本放入函数中:

function functionWithAjaxScript(qtsrl_id){
$.ajax(
{
    type: "GET",
    url: "aftermarksave.jsp",
    data:{setvalues : qtsrl_id},
    contentType: "application/json",
    async: false,
    success: function (data) 
    {
        alert("Data passed");
    },
    error: function(data) 
    {
        alert('Not passed Data: '+qtsrl_id);
    }   
});
}

单击按钮时,使用
.on()
触发函数:

$(function() {
    $("#mybuttonid").on("click",function(){
        functionWithAjaxScript(param);
    });
})

我希望这能有所帮助。

在我看来,它应该像你写的那样工作。问题是什么?它看起来更像一个servlet而不是JSP。请尝试以下操作:var forsplit=$(idvalue).attr(“id”).split(“”);问题是,在ajax中,aftermarksave.jsp没有被调用,但当我通过简单的ajax调用时,它就成功运行了,但#mybuttonid是在我的jsp页面中动态生成的,所以如何识别id2选项:1)在生成DOM属性时,必须使用一个通用类查看属性以识别它,例如:。从这一点上,您可以在jquery中使用类选择器:$(“.aGeneralName”)2)如果页面上只有一个按钮,您也可以使用选择器$('input:[type=“submit”]”),在JSP页面中有许多按钮,并且每次创建的按钮数量都是不固定的,因此我们如何识别该按钮类或按钮idOk。因此,一个页面上有多个按钮。我的代码样本
中的
param
值在哪里与ajaxscript(param)一起起作用来自哪里?它是否作为属性封装在button元素中,因此每个按钮中的参数都不同?例如:按钮1:
,按钮2:
,按钮x:
。我为您做了以下示例。假设JSP以这种格式或类似的格式生成HTML。如果您能够重构JSP,使其生成
class
-属性和
ajaxParam
,那么这个示例在您的案例中是可用的*仅供参考:*我不知道JSP,所以我不知道什么是可能的或不可能的:-)。
$(function() {
    $("#mybuttonid").on("click",function(){
        functionWithAjaxScript(param);
    });
})