如果用文本填充文本框,如何在JavaScript中执行函数?文本框与用户隐藏。它将由USB磁卡刷卡填充。
伪代码:
<script language="javascript" type="text/javascript">
function MyFunction() {
//execute this function when MyTxtBox is populated
}
</script>
<asp:TextBox id="MyTxtBox" runat="server" Visible="false" />
答案 0 :(得分:3)
好像你在页面加载时这样做了。如果你是的话,那就行了。
$(document).ready(function(){
if($('#MyTxtBox').val().length > 0){
MyFunction();
}
});
如果它正在改变:
$(document).ready(function(){
$('#MyTxtBox').change(function(){
if($(this).val().length > 0){
MyFunction();
}
});
});
答案 1 :(得分:1)
请参阅munch的答案,但使用CSS隐藏文本框,因为设置visible = false将导致文本框HTML未呈现,因此无法在客户端使用。
<style type="text/css">
.USBBox
{
position: absolute;
left: -999em;
overflow: hidden;
}
</style>
<asp.textbox id="MyTextBox" runat="server" CSSClass="USBBox" />
然后,您可以使用jQuery的类选择器来访问文本框,而不用担心名称错位:
%('.USBBox')
如果您在页面上有很多元素,那么您最好通过id访问,在这种情况下使用客户端ID来避免任何名称错位问题:
$('#<%= MyTextBox.ClientID %>')
更新
此link中提供的CSS解决方案用于隐藏用户的文本框。使用正确的解决方案更新了USBBox CSS类,因为设置display:none导致javaScript问题。
答案 2 :(得分:0)
附加到MyTxtBox的onChange事件。您需要执行一些ASP.NET来生成适合在JavaScript中使用的ClientID,因为ASP.NET会将MyTxtBox ID修改为其他内容。
<asp:TextBox id="MyTxtBox" runat="server" Visible="false" />
<script language="javascript" type="text/javascript">
function MyFunction() {
//execute this function when MyTxtBox is populated
}
document.getElementById("<%= MyTxtBox.ClientID %>").onChange = MyFunction;
</script>