的定義,假設你有一個函數如下:更改JavaScript函數
function chk() {
var valid = true;
if(document.getElementById("bob")) {
if(document.getElementById("bob").value == "") {
valid = false;
writeErrorMessage("bob", "Field 'Bob' is mandatory");
}
}
... //There may be a lot more than just this field, depending on the clients configuration.
return valid;
}
此功能是通過核心代碼輸出。現在客戶來了,並說他們希望域'x'是強制性的。通過核心代碼看,我們可以看到,這個字段不能進行默認強制性的,但是我們以前做的是類似以下內容:
var chk2 = chk;
chk = function() {
var valid = true;
if(document.getElementById("x")) {
if(document.getElementById("x").value == "") {
valid = false;
writeErrorMessage("x", "Field 'x' is mandatory");
}
}
if(valid) valid = chk2();
return valid;
}
這裏的問題是,如果有效的是假的,然後它贏得不會運行原始的chk函數(chk2),所以最初驗證的那些字段的錯誤消息將不會顯示。
我想要做的是基本上編輯此chk函數的工作 - 在最後一行之前添加幾行,即return valid
,以便驗證更多字段。問題是這個整個函數是由核心代碼輸出的,所以除了錯誤消息和哪些字段被驗證之外,這是我們無法控制的。如果一個字段默認情況下不能強制執行,那麼它將永遠不會輸出該字段的驗證碼。
記住return valid
行保證始終在那裏,有沒有人知道我可以採取一個函數的主體,取代它的一個特定部分,然後將新字符串設置爲新的主體功能?這似乎是應該可以與JS的東西,但我不能把我的手指,以實現這一目標。
在此先感謝。 問候, 理查德
我只是想一個可能的解決方法的 - CHK2的'結果存儲()'另一個變量,'valid2',然後'return(valid && valid2);'。我會試試這個。有些時候,我們可能希望編輯*字段驗證的方式 - 例如檢查格式。不是100%確定,如果這是可能的,我們目前這樣做的方式。 – ClarkeyBoy 2013-03-14 09:45:54