【发布时间】:2013-12-09 18:54:18
【问题描述】:
我正在测试 2 种方法(服务器端和客户端)调用 javascript AJAX 将票证发布到网站,然后获取票证号链接以进行跟踪/编辑/等$('#output').html(a);。然而他们都得到了不同的结果。
单击的服务器端按钮可以调用CreateIsm() 并获得票号$('#output').html(a); 的链接,但无法获取文本区域值并将其传递给它为空或为空的票证详细信息。 AJAX下success函数的alert消息成功
单击的客户端按钮可以调用CreateIsm(),但无法获取票号链接,但能够获取文本区域值并将其传递给票证详细信息。在 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 />
假设要发送到票务详细信息的文本区域,
<asp:TextBox ID="txt" runat="server" visible="False" TextMode="MultiLine"
Width=356px Height=200px style="margin-left: 0px"></asp:TextBox>
【问题讨论】:
标签: c# javascript jquery asp.net ajax