我正在测试两种方式(服务器端和客户端)来调用javascript AJAX将票证发布到网站,然后获取用于跟踪/编辑/ etc $('#output').html(a);
的票号的链接。然而,他们两个都得到了不同的结果。
单击服务器端按钮可以调用CreateIsm()
并获得票号$('#output').html(a);
的链接但无法获取并将textarea值传递给票据详细信息,该信息为空或空。 AJAX下成功函数中的警报消息成功
单击客户端按钮可以调用CreateIsm()
,但无法获取票号的链接,但能够获取并将textarea值传递给票证详细信息。在AJAX下,警报不会触发成功功能,我不知道为什么。谁知道为什么?
我希望结果是成功传递信息到textarea的票务详细信息并获得票号的链接。
这是一个javascript函数,
<script>
// global variables
id = '<%= AD.NEAt.GetUserID().ToString() %>';
notes = '';
ismClassId = '';
caseType = '';
l1 = '';
l2 = '';
l3 = '';
// Create ISM Ticket
$('#ButtonRequest').click(function () {
//var textBox = document.getElementById('<%=txt.ClientID %>'); //This Freeze
//var textBox = document.getElementById('#txt'); //does not appear in ticket detail
//var textBox = $('<%=txt.ClientID %>').val(); //does not appear in ticket detail
//var textBox = "Please add the following DNS entries\n"; appear in ticket detail
ismClassId = 'DOW31038';
caseType = 'Request';
l1 = 'Request';
l2 = 'Network';
l3 = 'Static IP Address';
//This one worked for client side. To get ip and name!
notes = $('#txt').val();
$.support.cors = true;
$.ajax({
type: "POST",
url: "http://servername/Common/Components/ISM/SubmissionPage.aspx",
data: {
'Form_ID': '08.01.7',
'ISM_Class_ID': ismClassId,
'Case_Type': caseType,
'Level_1': l1,
'Level_2': l2,
'Level_3': l3,
'Case_Notes': notes,
'Contact_ID': id
},
success: function (data) {
//console.log(data);
alert("success function called");
var str = data;
var ticket = $(str).find("#ticketIDOutput").val();
var hreff = "http://servername/Form/SRApproval/SRApproval.aspx?ticketID=" + ticket;
var a = "<a href='" + hreff + "' target='blank'>" + ticket + "</a> created."
$('#output').html(a);
},
error: function (jqXHR, textStatus, errorThrown) {
$('#output').html("Error creating ISM ticket: " + textStatus + " - " + errorThrown);
}
});
});
</script>
当用户单击按钮时,执行C#服务器端
protected void ButtonRequest_Click(object sender, EventArgs e)
{
//more codes above
//ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "call", "<script>CreateIsm();</script>", false);
}
ASPX客户端在用户点击按钮时触发,
<asp:Button ID="ButtonRequest" runat="server" onclick="ButtonRequest_Click" OnClientClick="return false" UseSubmitBehavior="false"
Text="Request" Visible="False" style="height: 26px" />
<br />
假设要发送到故障单详细信息
的textarea<asp:TextBox ID="txt" runat="server" visible="False" TextMode="MultiLine"
Width=356px Height=200px style="margin-left: 0px"></asp:TextBox>
答案 0 :(得分:1)
$(str).find()我认为这条线没有任何意义。就在你上面 var str = data ...为什么你在名为data / str的页面上寻找一个项目?
另外,不要附加ScriptManager脚本。
在按钮上设置OnClientClick =“return false”以防止回发,然后在jQuery中使用$(button).click()来执行你的AJAX。