摘要:而不是使用通常会触发回发的asp.net按钮,请使用html制作一个。让html按钮运行一个首先检查正则表达式验证的javascript函数,然后(如果有效)运行回发函数。
第一个,我将删除用于触发服务器端代码的asp.net按钮,并将其替换为客户端按钮。如果您需要帮助创建此按钮,您可以按照我的另一个答案中的步骤操作。这里是链接:
https://stackoverflow.com/questions/14062993/input-type-image-onclick-will-trigger-its-event-but-not-act-well-on-funct/14063911#14063911-Stack Overflow
二,JavaScript函数应该使用正则表达式函数首先验证数据。使用这样的事情:
function validateCombobox(myComboboxValue) {
if(myComboboxValue.match(regularExpressionString)===null){
return false
} else {
return true
};
};
***注:正则表达式是一个薄弱领域对我来说,你可能需要修改这个脚本一点。
第三,如果输入使用上面的脚本验证,然后使用javascript调用回发。要这样做,请按照下列步骤操作:
- 在asp页面上创建一个。这是必要的 ,因为没有它,该网站将不会生成事件处理程序 所需的buttonclick事件。
将链接按钮的CSS显示属性设置为'none'。请注意, 链接按钮的“可见”属性被设置为true(这是因为 asp.net甚至不会为控件提供虚假的 可见属性)。为了说明这一点,如果你的链接按钮的的CssClass 名字为myButton,将它添加到你的CSS文件:
.myButton
{
display: none;
}
现在,创建按钮和正确隐藏,你可以添加 回传功能,以您的javascript函数。回发功能 有两个参数,第一个是我们创建的 链接按钮控件的客户端ID。 当心客户端的 asp.net控件的ID不同于您在开发过程中为其分配 的ID。因此,我们使用<%= Control.ClientId%> 来获取控件的客户端ID。如果您的链接按钮ID是 “myLinkButton”,下面应该是回传功能:
__doPostBack('<%=myLinkButton.clientid %>','')
请注意,有强调在 开始该功能的字符。
这里是正则表达式验证功能的示例和JavaScript函数,应该由你的新按钮调用:
function validateCombobox(myComboboxValue) {
if(myComboboxValue.match(regularExpressionString)===null){
return false
} else {
return true
};
};
function comboBoxButton_click(){
var myComboboxValue = $('#<%=myComboBox.clientid %>').val();
if(validateCombobox(myComboboxValue)==true){
__doPostBack('<%=myLinkButton.clientid %>','');
};
};
我目前所面对的很多杂念和我如果这些说明有点混乱,请原谅我。如果您需要更多帮助,请随时发表评论,我会尽快回复。
我很欣赏详细的答复,但我首先看看是否可以使用regularexpression验证程序。不过谢谢。 – Wade73