0

我在设置 texbox 值时遇到问题。我正在做的是,在点击函数上获取锚标签的 id,然后将 id 拆分为字符串并将这些拆分的字符串设置为不同的字符串。问题是我只能在没有警报的情况下使用 alert() 函数时才能设置文本框值,我无法设置文本框值。这是我的代码

 $(".getPenalties").click(function () {
    var datas = this.id;
    var array_data = String(datas).split("#");
    $("#sbdt").load("../Account/Home/Defaulter.jsp?Staffdefaulter=1");
    var empid = array_data[4].trim(),
        name = array_data[1].trim(),
        dept = array_data[2].trim(),
        penalty = array_data[3].trim(),
        tabid = array_data[0].trim();
    alert(empid);
    $("#Empid").val(empid);
    $("#EmpName").val(name);
    $("#EmpDept").val(dept);
    $("#EmpPenalty").val(penalty);
    $("#hiddendata").val(tabid);
});
4

2 回答 2

1

您的元素在加载回调之前可能不存在,因此请尝试使用.load()的回调函数来设置值,例如:

$("#sbdt").load("../Account/Home/Defaulter.jsp?Staffdefaulter=1", function() {
    var empid = array_data[4].trim(),
    name = array_data[1].trim(),
    dept = array_data[2].trim(),
    penalty = array_data[3].trim(),
    tabid = array_data[0].trim();

    $("#Empid").val(empid);
    $("#EmpName").val(name);
    $("#EmpDept").val(dept);
    $("#EmpPenalty").val(penalty);
    $("#hiddendata").val(tabid);
});
于 2013-09-23T09:14:45.660 回答
0

看起来输入字段是使用load()调用动态加载的,所以您需要等到 dom 加载输入字段,为此您可以使用加载回调函数

$(".getPenalties").click(function () {
    var datas = this.id;
    var array_data = String(datas).split("#");
    $("#sbdt").load("../Account/Home/Defaulter.jsp?Staffdefaulter=1", function(){
        var empid = array_data[4].trim(),
            name = array_data[1].trim(),
            dept = array_data[2].trim(),
            penalty = array_data[3].trim(),
            tabid = array_data[0].trim();
        $("#Empid").val(empid);
        $("#EmpName").val(name);
        $("#EmpDept").val(dept);
        $("#EmpPenalty").val(penalty);
        $("#hiddendata").val(tabid);
    });

});
于 2013-09-23T09:14:58.233 回答