![](/img/trans.png)
[英]Add more than one variable in Javascript to work with the RegEx function
[英]More than one variable in a javascript function?
標題可能不正確,我不確定如何巧妙地表達問題。 可能與缺乏智能有關... anyhoo:作為CMS的一部分,我有這個javascript函數,可以生成輸入到HTML表單文本區域中的數據的預覽。 現在,表單顯然包含的部分不僅限於此文本區域,而且我想擴展該函數以包括“ title”和“ summary”的變量。 不知道JavaScript,我被卡在如何做到這一點。 因此,如果外面有什么善良的靈魂想教我(最好是借助視覺示例,而不僅僅是“好吧,你得把東西放進東西里,擺動……”),我將不勝感激。
我擁有的功能是這樣的:
// generate preview
function updatePreview() {
if (document.getElementById('txt')) {
var body = document.getElementById('txt').value;
document.getElementById('preview').innerHTML = body;
}
}
標題的表單字段命名為“ title”,摘要文本區域命名為“ sumtxt”,因此可以想象的功能如下:
// generate preview
function updatePreview() {
if (document.getElementById('title')+('txt')+('sumtxt')) {
var body = document.getElementById('title')+('txt')+('sumtxt').value;
document.getElementById('preview').innerHTML = body;
}
}
...但這看起來並不是特別正確,即使在我看來。 有什么建議嗎? 謝謝。
document.getElementById('txt')
是DOMNode或null
, document.getElementById('txt').value
是一個字符串,所以只需執行以下操作:
if (document.getElementById('title') !== null && document.getElementById('txt') !== null && document.getElementById('sumtxt') !== null) {
var body = document.getElementById('title').value + document.getElementById('txt').value + document.getElementById('sumtxt').value;
...
}
您可以一一檢查。
function updatePreview() {
var body = "";
if (document.getElementById('title')) {
body += document.getElementById('title').value;
}
if (document.getElementById('txt')) {
body += document.getElementById('txt').value;
}
if (document.getElementById('sumtxt')) {
body += document.getElementById('sumtxt').value;
}
document.getElementById('preview').innerHTML = body;
}
或者,您可以編寫一個支持功能:
function getElementValueById(id){
var node = document.getElementById(id);
var value = null;
if (node) {
value = node.value;
}
return value;
}
在updatePreview()中:
function updatePreview() {
var title = getElementValueById("title");
var txt = getElementValueById("txt");
var sumtxt = getElementValueById("sumtxt");
if(title && txt && sumtxt){
document.getElementById('preview').innerHTML = title + txt + sumtxt;
}
}
希望對您有所幫助。
回答弗里茨..
var eleholder = ['title','txt','sumtxt'], body= "";
for(i=0;i<eleholder.length;i++){
if(document.getElementById(eleholder[i]) !== null){
body += document.getElementById(eleholder[i]).value;
}else{
body = "";
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.