从后面的代码调用jQuery函数

时间:2013-06-17 06:16:14

标签: javascript jquery asp.net code-behind

我想从代码后面调用jQuery函数,因为我必须为函数发送变量。 我在后面的代码中使用了这段代码:

ClientScript.RegisterClientScriptBlock(this.GetType(), "myfunction", "ValidateTB("+ num+ "," + count +");", true);

我的功能是:

 function ValidateTB(num,count) {
    var check = false;
    alert("alert");
    for (var i = 0; i < num; i = i + 1) {
        check = false;
        for (var j = 0; j < count; j = j + 1) {
            var id = "myTextBox" + i + j;
            if ($("input[type='text']").val().length > 0) {
                check = true;
        }
            if (check == false) {
                $("#error").text("error");
                 return false;
        }

        }
    }
     return true;
};

为什么我的功能不起作用?听起来我的功能没有运行

5 个答案:

答案 0 :(得分:0)

确保在<script>部分的<head>块中声明此功能。

答案 1 :(得分:0)

您的代码应如下所示。

ClientScript.RegisterClientScriptBlock(this.GetType(), "myfunction", "return ValidateTB("+ num+ "," + count +");", true);

你的jquery函数返回true或false值,所以当你调用你的函数时你必须写“return”。

答案 2 :(得分:0)

从后面的代码调用任何jquery代码时,请确保使用$(document).ready包围代码。您需要将调用后的代码更改为以下内容:

ClientScript.RegisterClientScriptBlock(this.GetType(), "myfunction", "$(document).ready(function(){ValidateTB('"+ num+ "','" + count +"');});", true);

答案 3 :(得分:0)

使用RegisterStartupScript代替

Documentation

答案 4 :(得分:0)

假设我们有以下jquery类&#34; ChangeDate&#34;有一些属性和一个OnSelect事件将在选择期间调用,那么如果我们想在代码隐藏中使用这个类并更改它,那么一种方法是采用字符串构建器并执行如下操作,

   $(document).ready(function () {
   $('.ChangeDate').datepicker({
    beforeShowDay: $.datepicker.noWeekends,
    changeMonth: true,
    changeYear: true,
    dateFormat: 'mm/dd/yy',
    yearRange: '-100:+100',
    showButtonPanel: true,
    onSelect: function (date) {
        sMsg = sMsg + getErrorMessage('HME0002');
        if (confirm(sMsg) == true) {
            $('.ChangeDate').val('As of ' + date);
            $(this).datepicker("hide");
            return true;
        }
        else {
            $('.ChangeDate').val('As of ' + oldD);
            return false;
        }
    }
}); }); 

在代码隐藏中使用StringBuilder并将其附加到需要的函数并使用RegisterClientScriptBlock调用它,如下所示

   StringBuilder sb = new StringBuilder();
            sb.Append("$(document).ready(function () {");
            sb.Append("$('.ChangeDate').val('As of " + DateTime.Now.ToString("MM/dd/yyyy") + "');");
            sb.Append("});");
            BuildJSString("KEY", sb.ToString());

    private void BuildJSString(string keyStr, string scriptStr)
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), keyStr, scriptStr,true);
    }