标题可能不正确,我不确定如何智能地表达问题。可能与缺乏智能有关... anyhoo:作为CMS的一部分,我有这个javascript函数,可以生成输入HTML表单textarea的数据预览。现在,表单显然包含的部分不仅仅是这个textarea,我想扩展函数以包含“title”和“summary”的变量。不知道javascript,我不知道如何做到这一点。因此,如果有任何善良的灵魂感觉像教育我(最好用视觉的例子,而不仅仅是“你必须把东西放在东西和摆动......”)我将非常感激。
我的功能是:
// generate preview
function updatePreview() {
if (document.getElementById('txt')) {
var body = document.getElementById('txt').value;
document.getElementById('preview').innerHTML = body;
}
}
标题的表单字段名为“title”,摘要textarea名为“sumtxt”,因此想象的函数将类似于:
// generate preview
function updatePreview() {
if (document.getElementById('title')+('txt')+('sumtxt')) {
var body = document.getElementById('title')+('txt')+('sumtxt').value;
document.getElementById('preview').innerHTML = body;
}
}
......但即使对我来说,这看起来也不是特别正确。 建议? 感谢。
答案 0 :(得分:1)
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;
...
}
答案 1 :(得分:0)
您可以逐一查看。
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;
}
}
希望它有用。
答案 2 :(得分:0)
对Frits的回答......
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;
}
}