我的搜索按钮点击事件中有一些验证码,并且一直遇到问题需要点击两次才能工作。 Asp代码:
<asp:Button ID="SearchButton" runat="server" Text="Search" Width="148px" OnClick="SearchButton_Click" style="height: 35px" />
背后的代码
protected void SearchButton_Click(object sender, EventArgs e)
{
string title = TitleSearch.Text;
Regex rgx = new Regex("^[0-9A-Za-z ]+$");
if (title != "" && !rgx.IsMatch(title))
{
ErrorLabel.Text = "Special characters are not allowed";
}
else
{
SearchButton.PostBackUrl = "results.aspx";
}
}
答案 0 :(得分:1)
文本框是否有回发?因为如果您更改文本框中的文本,它将在您离开文本框时进行回发。如果您单击该按钮,则会触发文本框的回发。
我会用java检查文本框
添加页面加载事件“将EditGroup更改为要检查的TextBoxName”
EditGroup.Attributes.Add("onchange", "return SomeTextChanged();");
这会在文本框中添加一个onchange事件,当你点击按钮时它将调用你的aspx页面中的java函数
然后在您的aspx页面中添加“再次将EditGroup更改为您要检查的TextBox的名称”
<script type="text/javascript">
function SomeTextChanged() {
var Entered = document.getElementById('<%= EditGroup.ClientID %>');
if (Entered.value != "" && !Entered.value.match("^[0-9A-Za-z ]+$"))
{
alert("Special characters are not allowed");
document.getElementById('<%= EditGroup.ClientID %>').value = '';
}
else
{
}
}
</script>
因此,如果您输入不允许的内容,您将收到一条消息“不允许使用特殊字符”
这也将阻止您在执行按钮单击事件时执行其余代码页面。
你还需要清空文本框“我知道这可能不是最好的方法,但是如果你没有清空文本框,用户将再次单击该按钮,它将不会运行java代码,因为文本没有改变”
因此,如果文本是好的,则java脚本将不执行任何操作,并且按钮单击事件将触发