2014-11-05 73 views
1

我是新來的JavaScript和代碼剛剛從我的老年人複製。問題是當我點擊GridView中的Edit鏈接時,它不會更改爲Update Cancel。這是腳本代碼。未捕獲TypeError:字符串不是函數

<script type="text/javascript"> 
$(document).ready(function() { 
$(':checkbox').change(function() { 
    if ($(this).is(":checked")) { 
    $(this).val('1'); 
    } else { 
    $(this).val('0'); 
    } 
}); 

$("[id^=txtNumberVal]").bind("keypress", function (e) { 
    var keyCode = e.which ? e.which : e.keyCode 
    var chars = String.fromCharCode(keyCode); 
    var intRegex = '[-+]?([0-9]*.[0-9]+|[0-9]+)'; 
    if (!chars.match(intRegex)) { 
    alert('Please enter a valid number'); 
    return false; 
    } 
}); 
}); 

function editClick(i, e, v) { 
$(document).ready(function() { 
    var id = 0; 
    $("#<%=dgRule.ClientID%> tr").each(function() { 
    //alert($(this).find("td:eq(5) input[type=hidden]").val()); 
    id = $(this).find("td:eq(5) input[type=hidden]").val(); 
    $("#Edit" + id).show(); 
    $("#Update" + id).hide(); 
    $("#Cancel" + id).hide(); 

    if ((i == id) && (e == "E")) { 
     if (v == "1") { 
     $("#numberVal" + id).hide(); 
     $("#txtNumberVal" + id).show(); 
     } else if (v == "2") { 
     $("#chkBoolVal" + id).removeAttr('disabled'); 
     } else if (v == "4") { 
     $("#charVal" + id).hide(); 
     $("#txtCharVal" + id).show(); 
     } 
    } else { 
     $("#numberVal" + id).show(); 
     $("#txtNumberVal" + id).hide(); 
     $("#chkBoolVal" + id).attr('disabled', 'disabled'); 
     $("#charVal" + id).show(); 
     $("#txtCharVal" + id).hide(); 
    } 

    }); 
}); 

if (e == "U") { 
    $.ajax({ 
    type: "post", 
    url: "EditPasswordRule.aspx/UpdatePwdRule", 
    data: "{ numberVal: '" + $("#txtNumberVal" + i).val() + "', boolVal: '" + $("#chkBoolVal" + i).val() + "', charVal: '" + $("#txtCharVal" + i).val() + "', ruleID: '" + i + "' }", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    async: false, 
    success: function (result) { 
     $("#numberVal" + i).text(parseFloat($("#txtNumberVal" + i).val()).toFixed(2)); 
     $("#charVal" + i).text($("#txtCharVal" + i).val()); 
     alert(result.d); 
    }, 
    error: function (xhr, status, error) { 
     alert(error); 
     return false; 
    } 
    }); 
} 
else if (e == "E") { 
    $("#txtNumberVal" + i).val(parseFloat($("#numberVal" + i).text()).toFixed(2)); 
    $("#txtCharVal" + i).val($("#charVal" + i).text()); 
    if ($("#chkBoolVal" + i).is(":checked")) { 
    $("#boolVal" + i).val('1'); 
    } else { 
    $("#boolVal" + i).val('0'); 
    } 
    $("#Edit" + i).hide(); 
    $("#Update" + i).show(); 
    $("#Cancel" + i).show(); 
} else if (e == "C") { 
    if ($("#boolVal" + i).val() == "1") { 
    $("#chkBoolVal" + i).prop('checked', true); 
    } else { 
    $("#chkBoolVal" + i).prop('checked', false); 
    } 
    $("#Edit" + i).show(); 
    $("#Update" + i).hide(); 
    $("#Cancel" + i).hide(); 
} 
} 
</script> 

而GridView控件包含:

<a id="Edit<%# Eval("rule_id") %>" href="#" onclick="editClick('<%# Eval("rule_id") %>', 'E', '<%# Eval("val") %>'); return false;">Edit</a> 
       <a id="Update<%# Eval("rule_id") %>" href="#" onclick="editClick('<%# Eval("rule_id") %>', 'U', '<%# Eval("val") %>'); return false;" hidden="true">Update</a> 
       <a id="Cancel<%# Eval("rule_id") %>" href="#" onclick="editClick('<%# Eval("rule_id") %>', 'C', '<%# Eval("val") %>'); return false;" hidden="true">Cancel</a> 
       <input id="_id" type="hidden" value="<%# Eval("rule_id") %>" /> 

回答

2

沒關係。我只需要將下面的代碼添加到我的網站管理員。

<script src="../Scripts/jquery-1.11.1.js" type="text/javascript"></script> 
+0

將其標記爲已回答,請 – Caveman 2014-11-05 10:24:55

+0

@CapitanCavernícola我是新用戶,因此我無法將其標記爲已回答。 – ezekiel 2014-11-06 03:15:17

+0

從Meta:通過點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – Caveman 2014-11-07 07:54:14

相關問題