0

私のJavaScriptコードは

function addTaskSkill(form) {
    var at = form.all_skill.length -1;

    var td = form.task_skill.length -1;
    var tasks = "x";



    if(td>=0 && form.task_skill.options[0].value==skll_id){
        form.task_skill.options[0] = null;
        td = form.task_skill.length -1;
    }


    for (td; td > -1; td--) {
        tasks = tasks + "," + form.task_skill.options[td].value + ","
    }


    for (at; at > -1; at--) {
        if (form.all_skill.options[at].selected && tasks.indexOf("," + form.all_skill.options[at].value + ",") == -1) {
            t = form.task_skill.length
            opt = new Option(form.all_skill.options[at].text, form.all_skill.options[at].value);
            form.task_skill.options[t] = opt
        }
    }

    //checkForTaskSkill(form.task_skill);
}

function removeTaskSkill(form) {
    td = form.task_skill.length -1;

    for (td; td > -1; td--) {
        if (form.task_skill.options[td].selected) {
            form.task_skill.options[td] = null;
        }
    }

}

そして私の呼び出し関数は

<form action="#" method="post" name="detailFrm">
    <table>
        <tr>
            <td>
                <select name="all_skill" size="10" class="span5" multiple="multiple" >  
                    <option value="30">Apache</option>  
                    <option value="31">Microsoft IIS</option>
                    <option value="32">Tomcat</option> 
                    <option value="34">JBoss</option>   
                    <option value="35">BEA WebLogic</option>
                </select>
            </td>
            <td><input type="button" class="btn" value="&gt;" onclick="javascript:addTaskSkill(document.detailFrm)" />
                <br><br><input type="button" class="btn" value="&lt;"
                               onclick="javascript:removeTaskSkill(document.detailFrm)" /></td>
            <td>
                <select name="task_skill" class="span5" size="10" multiple="multiple"> </select>
            </td>
        </tr>
    </table>
</form>

ここでは、1つの選択ボックスからいくつかのオプションを選択しています。クリックする>>と、次の選択ボックスにプッシュされます。私が得ているエラーは

TypeError: form.all_skill is undefined
[Break On This Error]   

var at = form.all_skill.length -1;

私はこれに対する解決策を得ていません。解決策を得るためにここで助けてください。リストボックススワッパーを作成しようとしています。

前もって感謝します。

4

1 に答える 1

0

フォームの要素を参照するには、次のようにフォーム要素の選択を使用できます。

form.elements['all_skill'] // where form is: document.detailFrm

または、ID を使用します。

//HTML
<select name="all_skill" id="all_skill" size="10" class="span5" multiple="multiple" >

// in JS
document.getElementById('all_skill');
于 2013-02-11T10:23:38.890 に答える