0

我想从后面的代码中调用 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;
};

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

4

5 回答 5

0

<script>确保在该部分中的块中声明此函数<head>

于 2013-06-17T06:20:02.137 回答
0

RegisterStartupScript改为使用

文档

于 2013-06-17T07:11:13.160 回答
0

您的代码应如下所示。

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

您的 jquery 函数返回 true 或 false 值,因此您必须在调用函数时编写“return”。

于 2013-06-17T06:47:14.937 回答
0

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

ClientScript.RegisterClientScriptBlock(this.GetType(), "myfunction", "$(document).ready(function(){ValidateTB('"+ num+ "','" + count +"');});", true);
于 2013-06-17T07:00:55.173 回答
0

假设我们有以下带有一些属性的 jquery 类“ChangeDate”和一个将在选择期间调用的 OnSelect 事件,那么如果我们想在代码隐藏中使用这个类并对其进行更改,那么一种方法是采用 stringbuilder 并执行以下操作,

   $(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);
    }
于 2014-03-24T07:52:46.650 回答