0

アンカーで囲まれたdivに値を出力しようとしています。基本的に誰かが彼が望む高さをタイプし、それは彼に同等のデータシートを与えます。

アンカーでラップされたdivに必要な文字列を出力する方法がわかりません。

これが私のコードです:

<form name="test">
<label for="height">Height</label>
    <input type="text" name="height" /><br>
    <label for="width">Width</label>
<input type="text" name="width" /><br>
<label for="depth">Depth</label>
<input type="text" name="depth" /><br>
<label for="load">Load</label>
<input type="text" name="load" /><br>
    <input type="button" onclick="calculate();" value="Calculate" /><br><br>



</form>
<div id="result">
</div>

            <script type="text/javascript">
                        function calculate()
                        {
                            var height = document.test.height.value;
                            if (height <= 525) {
                                var str = "Download your Datasheet 1";

                            }
                            else if (height < 645) {
                                var str = "Datasheet 2";

                            }

                            else if (height > 1265) {
                                var str = "This configuration is beyond the standard range of top-load testers. Please contact Mecmesin Sales to discuss ways to meet your requirements.";
                            }

                            else if (isNaN(height)) {
                              window.alert(height + ' is not a number!');
                              }

                            else {
                                var str = "Datasheet 3";
                            }
                            document.test.result.value = str.anchor();

                        }
            </script>

前もって感謝します。

4

4 に答える 4

0

DOMを正しく使用していません。

height入力にIDを指定する必要があります。

<input type="text" id="height" name="height" />
var height = document.getElementById("height").value;


または、単に次を使用することもできます。

var height = document.getElementsByName("height")[0].value;

しかし、私はそれをお勧めしません。

于 2013-03-21T15:53:16.660 に答える
0

これを試して:

document.getElementById("result").innerHTML = str;
于 2013-03-21T15:47:41.773 に答える
0
var height = document.test.height.value

この行は、フォームの高さの値を示していません。

その入力に「height」のようなIDを指定してから、次のような値を取得します。

var height = document.getElementById('height').value;

しようとしているようにドキュメントオブジェクトのプロパティとして要素にアクセスすることはできません。document.getElementByIdやdocument.getElementByTagNameなどを使用して要素を選択する必要があります。

于 2013-03-21T15:49:24.723 に答える
0

他の人はdivにアンカーを含めることについてのポイントを見逃していると思います...これは、文字列だけでなくURLも提供する必要があることを示唆しますが、それを実行すると、ドキュメントを置き換える追加のコードが提供されます。 test.result.value行は次のようになります。

// empty out the result div first
var node = document.getElementById('result');
while(node.firstChild) {
    node.removeChild(node.firstChild);
}

// create the anchor DOM object
var a = document.createElement('a');
var linkText = document.createTextNode(str);
a.appendChild(linkText);
a.title = str;
a.href = "http://example.com/"+str+".pdf"; //for example

// attach it to your result node
node.appendChild(a);

ページを更新せずに再利用する予定がない場合は、whileループなしで再利用できます。

于 2013-03-21T16:03:29.250 に答える