2016-09-10 20 views
-2

私はhtmlで使用できるjavascriptを作成しようとしています。関数の結果表示

誰かが[計算]ボタンをクリックすると、Javaスクリプトが実行され、結果が表示されます。しかし何らかの理由で、結果が正しく表示されません。誰かがこれを手伝ってくれましたか?

私のファイルはここで見つけることができます:

function outputname() { 
 
    var vl,vm,vc,il,ic,r, sum,x; 
 
    x=document.getElementById("Tool") ; 
 
\t 
 
    vl=x.elements["VL"].value; 
 
    vm=x.elements["VM"].value; 
 
    vc=x.elements["VC"].value; 
 
    il=x.elements["IL"].value; 
 
    ic=x.elements["IC"].value; 
 
    r=x.elements["R"].value; 
 

 
    
 

 
    sum=r; 
 

 

 
\t document.getElementById("Tool").innerHTML += " is not valid! <br>"; 
 
    document.getElementById("Tool").innerHTML += sum+"<br>"; 
 
    
 

 

 
} 
 

 
outputname();
body { 
 
    background-color: #119ed8; 
 
} 
 

 
label { 
 
    text-align: left; 
 
    width: 200px; 
 
    display: block; 
 
    float: left; 
 
    clear: left; 
 
    margin-right: 3px; 
 
    cursor: pointer; 
 
    font: normal 16px ventura; 
 
    color: white 
 
} 
 

 
.button{ 
 
    width: 95px; 
 
    font: normal 16px ventura; 
 
    margin-right: 3px; 
 
    margin-bottom: 3px; 
 
} 
 

 
.print{ 
 
    width: 350px; 
 
    height: 200px; 
 
}
<form id="form1"> 
 
    <p><label for="Vectorlength">Vector length (bp):</label> 
 
    <input type="text" name="Vectorlength" value="" /> 
 
    </p> 
 
    <p><label for="Vectormass">Vector mass (ng):</label> 
 
    <input type="text" name="Vectormass" value="" /> 
 
    </p> 
 
    <p><label for="Vectorconcentration">Vector concentration (ng/µL):</label> 
 
    <input type="text" name="Vectorconcentration" value="" /> 
 
    </p> 
 
    <p><label for="Insertlength">Insert length (bp):</label> 
 
    <input type="text" name="Insertlength" value="" /> 
 
    </p> 
 
    <p><label for="Insertconcentration ">Insert concentration (ng/µL):</label> 
 
    <input type="text" name="Insertconcentration" value="" /> 
 
    </p> 
 
    <p><label for="Ratio">Ratio Insert/Vector:</label> 
 
    <input type="text" name="Ratio" value="3" /> 
 
    </p> 
 

 

 
</form> 
 
<button onclick="outputname()">Submit</button> 
 
<p id="demo"></p>

事前に多くの感謝

+0

結果が直接表示されるのはどういう意味ですか – Nagaraju

+1

あなたの質問はあまり明確ではなく、[最小、**完全、かつ確認可能な例]を提供していません(http://stackoverflow.com/ help/mcve):ID「Tool」の要素がありません。 – Xufox

+0

スクリプトの最後の行でも関数を呼び出しているからです。スクリプトの中でボタンを呼び出すのではなく、ボタンの "onclick"で関数を呼び出してみてください。 –

答えて

1

最後の行の削除次のコードのjavaスクリプトで

outputname(); 

すべての行ページ読み込み時に実行されます。だからあなたの場合は、自分でロードするときにoutputname()関数を呼び出すことになります。

は、formタグであなたのボタンを配置し、あなたのボタンは、あなたの関数を実行した後に提出するフォームを防ぐことができます。この

<button onclick="outputname(); return false;">Submit</button> 

次のようにクリックしてください変更します。

+0

それは確かに問題です。 *「ページ読み込み時に実行されるすべての行のJavaスクリプトで」注:ただし、これはグローバルスコープのものについてのみ当てはまります。関数内の関数は、関数が呼び出されるまで実行されません(関数が複数回呼び出されると複数回実行されます)。繰り返しますが、何が間違っているのかはあなたが正しいです。 –

+0

あなたの答えに多くの感謝。それは理にかなっている。ただし、関数のその部分を削除すると、計算ボタンはまだ動作しません。私は間違っているの? (これはjavaとhtmlでの私の最初の経験です。)「 – Frederique

+0