2017-09-13 88 views
0

我希望能夠根據用戶輸入的內容更改textarea標記內的值。Textarea值等於「」

<div class="form-group"> 
    <label>Describe what happened</label> 
    <textarea id="descriptionReport" form="newReport" placeholder="Describe what happened.." name="description" data-rule-describeEvent="true " cols="5" rows="5" class="form-control" maxlength="255" a></textarea> 
</div> 

我已經宣佈我的腳本變量:

$(document).ready(function() { 
    var vm = { 
     movieIds: [], 
     ReportDescription: null 
    }; 

然後,我將其設置爲textarea標籤

vm.ReportDescription = document.getElementById("descriptionReport").value; 

內的值,我總是得到的值等於「」。

我添加了一個驗證插件來檢查值是否有效:

$.validator.addMethod("describeEvent", function() { 
      return vm.ReportDescription !== ""; 
     }, "Please describe what happened."); 

的一句「請描述發生了什麼。」無論我在表單中輸入textarea,都會出現。

我是相當新的這一點,一直沒能找到這對我工作的解決方案。

+0

「取決於用戶在框中鍵入的內容」。那個盒子? – SilverSurfer

+0

我的html表單中的文本框@SilverSurfer – IlirAs

+0

它是您窗體中的另一種輸入類型文本嗎? – SilverSurfer

回答

0

您的意見後,我認爲你根本就沒有更改虛擬機的初始化一次在讀功能,這就是爲什麼它保持爲空,你會得到消息:「請描述發生了什麼」的值。我不知道你使用的插件,但我認爲你的ReportDescription始終保持爲空,這就是你的問題。

HTML:我添加了一個KEYUP屬性爲您的文字區域。

<textarea id="descriptionReport" form="newReport" placeholder="Describe what happened.." name="description" data-rule-describeEvent="true " cols="5" rows="5" class="form-control" maxlength="255" onkeyup="applyChanges()"></textarea> 

在你的代碼中添加這個函數。它會在用戶按下某個鍵後更改vm.ReportDescription的值。

var vm; 
$(document).ready(function() { 
    vm = { 
     movieIds: [], 
     ReportDescription: null 
    }; 
}); 
function applyChanges() { 
     vm.ReportDescription = document.getElementById("descriptionReport").value; 
     if (vm.ReportDescription == ""){ 
      vm.ReportDescription = null; 
     } 
} 
+0

控制檯出現錯誤,Uncaught ReferenceError:applyChanges未定義 at HTMLTextAreaElement.onkeyup – IlirAs

+0

您是否已將applyChanges()函數添加到您的js文件中? – user5014677

+0

當我添加applyChanges(){ vm.ReportDescription = document.getElementById(「descriptionReport」).value; },我期待';'在第一個大括號中,我應該添加它的位置。 – IlirAs