简单的javascript:数组和表单信息收集

时间:2016-02-13 00:21:16

标签: javascript html

我根本不了解javascript,我只是喜欢为自己制作列表。我目前正在尝试创建一个html页面,我可以跟踪我最喜欢的游戏中的角色,但我遇到了一些我不知道如何解决的问题。

function overview ()
{
    var ov01=document.form.ov01.value;//file
    var ov02=document.form.ov02.value;//text
    var ov03=document.form.ov03.value;//text
    var ov04=document.form.ov04.value;//text
    var ov05=document.form.ov05.value;//radio
    var ov06=document.form.ov06.value;//select
    var ov07=document.form.ov07.value;//number
    var ov08=document.form.ov08.value;//text

document.result.endresult.value="<!DOCTYPE html><html><head><title>Save Challenge Valley</title><link rel='stylesheet' type='text/css' href='./forSCV/scripts/SaveChallengeValley.css'><script type='text/javascript' src='./forSCV/scripts/onmouseover-out.js'></script></head><body><div id='container'><div id='title'><table id='title'><tr><td rowspan='2'><img src='//C:/Users/Nancy/Pictures/The Sims/Sims 2-familytrees/ChallengePhotos/alloyE.jpg' alt='Alloy Challenge' id='title' title='Alloy Challenge'></td><td><h1>Save Challenge Valley</h1></td><td rowspan='2'><img src='//C:/Users/Nancy/Pictures/The Sims/Sims 2-familytrees/ChallengePhotos/addisonE.jpg' alt='Addison Challenge' id='title' title='Addison Challenge'></td></tr><tr><td class='bottom'><b>"+ov02+""+ov04+"</b></td></tr></table></div><script type='text/javascript' src='./forSCV/scripts/menusSCV.js'></script><div id='easy1'><h2>Overview</h2><img src='//C:/Users/Nancy/Pictures/The Sims/Sims 2-familytrees/ChallengePhotos/'"+ov01+"' alt='"+ov02+" "+ov03+"' title='"+ov02+" "+ov03+"' class='overview1'><table class='overview2'><tr><td>Name:</td><td class='white'>"+ov02+""+ov04+" "+ov03+"</td></tr><tr><td>Treat as:</td><td class='white'>"+ov05+"</td></tr><tr><td>Life Section:</td><td class='white'>"+ov06+"</td></tr><tr><td>Remaining Days:</td><td class='white'>"+ov07+"</td></tr><tr><td>Catalog Desc.:</td><td class='white'>"+ov08+"</td></tr></table></div>"
}

当需要点击按钮时,我希望ov04的值(如果可用)添加空间,然后再添加< EM>)。我不知道如何实现这一目标。 (搜索没有帮助。)

示例:Amy(McCoy)Carter。 ov02是名字,ov03是姓氏,ov04是姓氏。

我认为这样的事情可能会这样,但是没有......

var space="";

    do {space +=" ("+ov04+")";
        ov04--;}
    while (ov04>=2);

2 个答案:

答案 0 :(得分:2)

让我们处理在婚前姓名周围添加一些括号。你当然遇到的一个问题是你对待ov04的方式。它有一个字符串 - 一个娘家姓,但你试着将它当作一个数字来对待它,(ov04--)那就是不会做的!

我将演示一个函数:

function makePrettyName(fistName, lastName, maidenName)
{
 var result;
 if (maidenName != "")
 {
    result = firstName + " (" + maidenName + ") " + lastName;
 }
 else
 {
    result = firstName + " " + lastName;
 }
 return result;
}

使用它的一个例子:

var tgtElem = document.getElementById(idOfTargetElementGoesHere);
tgtElem.innerText = makePrettyName(document.form.ov02.value, document.form.ov03.value, document.form.ov04.value);

我还要指出,如果你养成了使用有意义的变量名的习惯,那么你未来的自我和你共享代码的任何人都会感谢你。键入名称需要花费很少的时间/精力,而不是将一些任意变量名称连续地精神连接到它所拥有的数据。

答案 1 :(得分:2)

姓名

var fullName = ov02 + " " + (ov04 ? "(" + ov04 + ") " : "") + ov03;

来自<select multiple>

的所选选项值的数组
var opts = [].reduce.call(
  document.form.nl01.options, 
  function (c, el) { 
    if (el.selected) 
      c.push(el.value); 
    return c; 
  }, []);

第三。你真的不应该这样做。制作一些容器div,并分别写入每个容器。