0

矢印は、選択肢を表示したい場所を示しています

上記の空のテキストボックスと空のフィールドにもクリックされたものを表示したいと思います。次のような警告メッセージを使用して、それらを正常に表示しました。

 function Chosen() {
        var message = ""
        if (document.getElementById('cbconditioning').checked == true) {
            message += " (AC)"}
     alert("You have selected: " + message +     document.getElementById("cbotherstext").value);

私が要求しているコードでは、まったく同じ結果が両方の空のフィールドに表示されるようにします。

フィールドとそのタイプは次のとおりです。

 <input id="cbconditioning" type="checkbox"/>a. Air Conditioning</td>


 <td class="auto-style63" rowspan="3" type="text" id="emptyspace1a" onclick="Chosen()" >
            </td>

 <input id="emptytext1" type="text"/></td>

 <input id="cbotherstext" type="text" disabled="disabled" /></td>

 <input type="button" id="chosenlaunch" onclick="Chosen()" value="Equipments Purchased"/>

上記の関数にフィールドが含まれていることを確認したい。

4

1 に答える 1

0

シンプルにするために、チェックボックスごとに label タグを使用する必要があります...

<input id="cbconditioning" type="checkbox"/><label for="cbconditioning">a. Air Conditioning</label></td>

選択した関数では、次のようになります....

    var getTextContent = function(node) {
        var content = "";
        try {
            if (node.nodeType == 1) {
                var child = node.firstChild;
                while("undefined" != typeof child && child != null) {
                    content += getTextContent(child);
                    if ("undefined" != typeof child.nextSibling) {
                        child = child.nextSibling;
                    } else {
                        child = null;
                    }
                }
            } else if (node.nodeType == 3) {
               content = node.data;
            } else if (node.nodeType != 8) {
              content = node.nodeValue;
            }
         } catch(e) {
             content = "";
         }
         return ""+content;
    };  

var selectedItems = [];
var labels = document.getElementsByTagName('label');
for(var idx=0;idx<labels.length;idx++) {
    if (labels[idx].hasAttribute('for')) {
        var checkboxNode = document.getElementById(labels[idx].getAttribute('for'));
        if (checkboxNode.checked) {
            selectedItems[selectedItems.length] = getTextContent(labels[idx]);
        }
    }
}
alert('You have selected:'+(selectedItems.join(',')));

データを別の要素に入れるのも簡単です...

var targetNode = document.getElementById('TargetNode');
while(targetNode.firstChild) { targetNode.removeChild(targetNode.firstChild); }
targetNode.appendChild(document.createTextNode(selectedItems.join(',')));
于 2013-11-03T08:36:18.780 に答える