我處於使用供應商提供的系統的情況,該系統內置了無法驗證的腳本改性。Javascript修改現有頁內腳本中無法手動更改的變量
頁面上的其中一個腳本調用與文本框中的字符數相關的驗證方法。
它將字符數限制作爲方法調用中的靜態數字傳遞。靜態編號來自一個配置文件,我可以改變它。問題是我需要根據用戶從下拉菜單中選擇的值來更改此號碼。
發生了什麼是我必須在窗體提交文本框中添加內容。我附加的內容包括一個具有可變長度的下拉列表中的值。
我正在運行的腳本在文本框中追加內容的工作正常。我碰到的問題是用戶輸入的文本數量最多(有一個字符倒計時),當他們點擊提交時,系統會從下拉菜單中添加內容,但會截斷用戶消息的結尾,因爲它是現在比接受的數字更長。
由於這是一個供應商/封閉系統,我調整現有的頁面腳本,表單元素等的選項非常有限。我可以添加腳本(包括jQuery腳本)來修改DOM。
任何想法如何處理這樣的事情將非常感激。
謝謝!
編輯
這是不是一個工作的例子,但也許說明了什麼我想要做的事:
<select name="selectedname" id="selectedname">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
</select>
<textarea id="message"></textarea>
<span id="errormessage"><!-- this is where you would see the text counting down --></span>
<script>
vendor_script_that_counts_down_text_and_validates_length(arg1, arg2, 500)
</script>
<button id="send"></button>
我的腳本:
/* Attempt to add the name to the question*/
if (window.jQuery) {
//Adding this to prevent conflicts with existing javascript
jQuery.noConflict();
// Adding usual jQuery symbol to the local scope of this method
jQuery(document).ready(function($){
$("#send").on('click', function(e) {
var valueSelected = getName($); // this is a function that gets the value of the dropdown
var message = "This message is for " + valueSelected + ". The message begins here:\n\n";
$("#message").val(function(index, userMessage){
return message + userMessage;
})
});
});
}
在怎樣的條件腳本目前正在一起工作,他們不是,我想這是我問題的關鍵,他們可以一起工作嗎?有沒有一種方法可以修改我的腳本,以根據通過約束選擇的下拉值更改驗證腳本調用(500)中使用的數字,我無法修改除創建的腳本之外的任何HTML或頁面腳本?
[添加一些代碼。也許是一個簡化但工作的例子。](https://stackoverflow.com/help/mcve) – Yoshi 2014-09-12 15:49:09
我可以添加一些代表正在發生的事情,但我無法添加供應商提供的將複製的驗證腳本功能。這仍然有幫助嗎? – someoneinomaha 2014-09-12 16:03:18
好吧,在某種程度上,你必須向我們展示你的腳本如何一起工作。事實上,這是抽象的。 – Yoshi 2014-09-12 16:36:50