Javascript 创建Pass-Fail输入函数

Javascript 创建Pass-Fail输入函数,javascript,html,Javascript,Html,我正在创建一个测试表单。我已经创建了一个表单,其中包含要测试的步骤列表 而不是清单上的每一项都需要: <input type="radio" name="step1">Pass<input type="radio" name="step1">Fail 然后我称之为: <li>Step One: Turn the TV On <input id = "step1" onload="createPassFail(this.value)"> </

我正在创建一个测试表单。我已经创建了一个表单,其中包含要测试的步骤列表

而不是清单上的每一项都需要:

<input type="radio" name="step1">Pass<input type="radio" name="step1">Fail
然后我称之为:

<li>Step One: Turn the TV On
<input id = "step1" onload="createPassFail(this.value)">
</li>
  • 第一步:打开电视

  • 所有这些只是创建一个文本框,这不是我想要的。我也不确定onload是否正确。

    您应该传递id,而不是将
    值传递给函数:

    onload="createPassFail(this.id)"
    //                          ^^
    
    我说您的事件应该是
    onblur
    ,因为我不认为
    onload
    是您应该使用的事件处理程序。您可以使用我的建议,或者在文本框旁边设置一个按钮,当单击该按钮时(使用
    onclick
    ),该按钮将执行您想要的操作

    此外,您还没有将pass或fail元素插入到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);
        });
    });
    
    $(文档).ready(函数(){
    函数createPassFail(名称)
    {
    $('body')。追加('Pass');
    $('body')。追加('Fail');
    }
    $('#step1')。就绪(函数(){
    createPassFail(this.id);
    });
    });
    

    我不需要评论框,我宁愿通过/不通过一直处于关闭状态。我试了你说的第一种方法,但没能成功。如果在执行此操作之前加载了
    ,则该代码应该可以工作。另外,jQueryOne对您有用吗?我看到它在JSFIDLE中有效,但在我的代码中不起作用。此外,我是否必须为每个步骤添加#step1?查看后,我还想在通过或失败选择下添加一个注释框,同样,有一个函数,我可以调用我想放置的每个位置,这比手动将其放置在每个位置要容易得多。
    $(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);
        });
    });