textbox 的 onchange事件 不见了,请帮助。
我最近在做一个很简单的网页,用的是C#。其中有一个功能是这样的,有三个文本框,textbox1和textbox2相应onchange事件去调用一个js function 把两个textbox的值相加显示在第三个textbox中。
结果出现了个问题让我非常困扰,我的页面时在vs2005里做的,做完之后F5运行,没有问题。但是我把这个页面复制到我的iis下然后访问,结果页面不响应我的onchange事件,我查看HTML源代码发现,textbox1和textbox2的onchange事件都不见了。回到vs2005,F5,运行正常,查看HTML源代码,textbox1和textbox2的onchange事件也都在。
同样是一个页面文件,同样是一台电脑,只是IIS一个是vs的一个是windows的,结果就不同。
以下是我的代码:
CS:
public string CTL;
protected void Page_Load(object sender, EventArgs e)
{
CTL = txbUploadFileDescription.UniqueID; //取得本页面里某个控件的UniqueID
CTL = CTL.Replace("txbUploadFileDescription", "");
CTL = CTL.Replace("$", "_") //取得本页面所有控件ID的前缀
txbClaimAmount.Attributes.Add("onchange", "Javascript:GetTotalAmount()");
txbClaimGST.Attributes.Add("onchange", "Javascript:GetTotalAmount()");
}
ASPX
<script language="javascript" type="text/javascript">
function GetTotalAmount()
{
var CTL = "<%=CTL %>";
var txbClaimAmount = document.getElementById(CTL + "txbClaimAmount");
var txbClaimGST = document.getElementById(CTL + "txbClaimGST");
var txbClaimTotalAmount = document.getElementById(CTL + "txbClaimTotalAmount");
var Amount = 0;
var GST = 0;
var Total = 0;
if(isNaN(txbClaimAmount.value) == false)
{
if(txbClaimAmount.value > 0)
{
Amount = txbClaimAmount.value;
}
}
if(isNaN(txbClaimGST.value) == false)
{
if(txbClaimGST.value > 0)
{
GST = txbClaimGST.value;
}
}
Total = parseFloat(Amount) + parseFloat(GST);
txbClaimTotalAmount.value = Total.toFixed(2);
}
</script>
HTML 源代码
F5运行:<input name="ctl00$ContentPlaceHolder1$txbClaimAmount" type="text" id="ctl00_ContentPlaceHolder1_txbClaimAmount" onchange="Javascript:GetTotalAmount()" />
在IIS下运行: <input name="ctl00$ContentPlaceHolder1$txbClaimAmount" type="text" id="ctl00_ContentPlaceHolder1_txbClaimAmount" />
其他都一样,包括javascript获得的CTL(UniqueID的前缀)。页面里还有其他的js,是用validator调用的,连个环境运行都正常。
请指教,谢谢!
结果出现了个问题让我非常困扰,我的页面时在vs2005里做的,做完之后F5运行,没有问题。但是我把这个页面复制到我的iis下然后访问,结果页面不响应我的onchange事件,我查看HTML源代码发现,textbox1和textbox2的onchange事件都不见了。回到vs2005,F5,运行正常,查看HTML源代码,textbox1和textbox2的onchange事件也都在。
同样是一个页面文件,同样是一台电脑,只是IIS一个是vs的一个是windows的,结果就不同。
以下是我的代码:
CS:
public string CTL;
protected void Page_Load(object sender, EventArgs e)
{
CTL = txbUploadFileDescription.UniqueID; //取得本页面里某个控件的UniqueID
CTL = CTL.Replace("txbUploadFileDescription", "");
CTL = CTL.Replace("$", "_") //取得本页面所有控件ID的前缀
txbClaimAmount.Attributes.Add("onchange", "Javascript:GetTotalAmount()");
txbClaimGST.Attributes.Add("onchange", "Javascript:GetTotalAmount()");
}
ASPX
<script language="javascript" type="text/javascript">
function GetTotalAmount()
{
var CTL = "<%=CTL %>";
var txbClaimAmount = document.getElementById(CTL + "txbClaimAmount");
var txbClaimGST = document.getElementById(CTL + "txbClaimGST");
var txbClaimTotalAmount = document.getElementById(CTL + "txbClaimTotalAmount");
var Amount = 0;
var GST = 0;
var Total = 0;
if(isNaN(txbClaimAmount.value) == false)
{
if(txbClaimAmount.value > 0)
{
Amount = txbClaimAmount.value;
}
}
if(isNaN(txbClaimGST.value) == false)
{
if(txbClaimGST.value > 0)
{
GST = txbClaimGST.value;
}
}
Total = parseFloat(Amount) + parseFloat(GST);
txbClaimTotalAmount.value = Total.toFixed(2);
}
</script>
HTML 源代码
F5运行:<input name="ctl00$ContentPlaceHolder1$txbClaimAmount" type="text" id="ctl00_ContentPlaceHolder1_txbClaimAmount" onchange="Javascript:GetTotalAmount()" />
在IIS下运行: <input name="ctl00$ContentPlaceHolder1$txbClaimAmount" type="text" id="ctl00_ContentPlaceHolder1_txbClaimAmount" />
其他都一样,包括javascript获得的CTL(UniqueID的前缀)。页面里还有其他的js,是用validator调用的,连个环境运行都正常。
请指教,谢谢!
...全文
相关推荐
easyui-textbox和easyui-combobox的onchange事件响应实例
这是我自己总结出来easyui-textbox和easyui-combobox的onchange事件响应实例,绝对可用,网上很多实例都无法运行,这个我亲自测试可用使用才传上来的,供大家参考学习。
js触发onchange事件的方法说明
怎么在js代码模式通过代码触发textbox控件的onchange事件呢,经过查阅资料,发现js提供了一个方法,可以触发控件的应该是所有事件
javascript的onchange事件与jQuery的change()方法比较
改变一下思路变成键盘按键事件,如下: <asp ID=”txtName” runat=”server” xss=removed></asp> 这里有一点毛病是,你复制粘贴的内容,无法触发这个事件。下面是相关的一些代码: 代码如下: function fNameChange(){ if($(‘#txtName’).val().length<6){ jQuery(“#checkSta”).html(“姓名过短!”).css(“color”,”red”); }else{ myajax(); } } 下面是网上搜索的一些内容: 代码如下:
textbox 回车执行事件
在textbox回车执行服务器端的事件
C#递归遍历窗体所有textbox控件并设置textbox事件的方法
主要介绍了C#递归遍历窗体所有textbox控件并设置textbox事件的方法,包括针对textbox控件的递归遍历技巧与事件方法的设置技巧,需要的朋友可以参考下



