创建通过失败输入功能

问题描述:

我正在创建测试表单。我创建了一个包含要测试的步骤列表的表单。创建通过失败输入功能

相反名单需要对每一个项目的:

<input type="radio" name="step1">Pass<input type="radio" name="step1">Fail 

我想创造一个功能,所以我只能把它每次创建它的时间。 这是我的功能至今:

function createPassFail(name) 
{ 
    var Pass = document.createElement('input'); 
    Pass.type = "radio"; 
    Pass.name = name; 
    document.getElementById("Pass").innerHTML = "Pass"; 

    var Fail = document.createElement('input'); 
    Fail.type = "radio"; 
    Fail.name = name; 
    document.getElementById("Fail").innerHTML = "Fail"; 
} 

然后我把它叫做:

<li>Step One: Turn the TV On 
<input id = "step1" onload="createPassFail(this.value)"> 
</li> 

这一切确实是创建一个文本框,这是不是我要的。我也不确定onload是否正确。

+0

看着它后,我还想添加评论框中的及格或不及格的选择之下,又具有1个功能我可以打电话给我想把这将是每个地方比手动将其放置在每个地方要容易得多。 – Brad 2013-03-26 16:34:58

而是在value传递给函数,你应该通过ID:

onload="createPassFail(this.id)" 
//       ^^ 

我说,你的事件应该是onblur,因为我不认为onload是你应该使用的事件处理程序。您可以使用我的建议,也可以在文本框旁边设置一个按钮,点击按钮(使用onclick)就可以做到您想要的。

此外,您还没有将通过或失败的元素插入到HTML中。试试这个:

document.body.appendChild(Pass); 
document.body.appendChild(Fail); 

这将新创建的元素直接插入到body元素的末尾。如果您希望它们对其中某个元素是孩子,则必须使用合适的方法访问该元素。例如,getElementById

document.getElementById(element).appendChild(Pass); // do the same for Fail 

然而,这都可以很容易地用jQuery做。

$(document).ready(function() { 
    function createPassFail(name) 
    { 
     $('body').append('<input type="radio" id="' + name + '">Pass'); 
     $('body').append('<input type="radio" id="' + name + '">Fail'); 
    } 

    $('#step1').ready(function() { 
     createPassFail(this.id); 
    }); 
}); 

Live Demo

+0

我不需要评论框,我宁愿通过/失败一直在运行。我正在尝试你说的第一种方式,并且无法使其工作。 http://jsfiddle.net/6yHTa/ – Brad 2013-03-26 15:42:42

+0

这样的代码应该工作,因为'

'被加载之前,你这样做。此外,jQuery的一个为你工作 - http://jsfiddle.net/DAsuJ/ – 0x499602D2 2013-03-26 15:53:00
+0

我看到它在jsfiddle工作,但它不工作在我的代码。我还需要为每一步添加#step1吗? – Brad 2013-03-26 16:02:49