2014-10-17 43 views
0

我正在創建一個評分投票,對提交的比賽視頻進行評分。我爲所有視頻使用相同的HTML表單進行評分。用java腳本動態更新的唯一字段是:裁判姓名和參賽者姓名。我的問題是我用java腳本設置的值顯示在窗體上,但沒有記錄在csv文件中。用Javascript設置了一個文本輸入值

這裏是我的HTML: 選擇您的姓名 法官#1 法官#2 法官#3 法官#4 法官#5 法官#6 基於這一選項選中,他們將得到一組他們還沒有完成評分的視頻,並顯示嵌入視頻的第一個評分表單。最初它們隱藏在頁面上。

<form id="ballot1" action="javascript: sendBallot()" method="post" enctype="multipart/form-data"> 
    <table border="0" style="border-collapse: collapse" width="100%" id="table3"> 
    <tr> 
     <td><input type="hidden" name="Contestant" value="Contestant1"></td> 
     <td width="78%"><input name="form_judge" id="form_judge" value=""></td> 
    </tr> 
    <tr> 
     <td><p><span style="font-size:1em;"><strong>1. Efficacy of Practice - 50%</strong></span></p></td> 
    </tr> 
    <tr> 
    <td><label class="ballot">&nbsp;&nbsp;&nbsp;a. Video explores relevant subject matter </label> 
    </td> 
    <td> 
     <select class="ballot" id="one_a_score" name="one_a_score" valign="bottom"> 
     <option value="0" selected>Select Score</option> 
     <option value="2">Poor</option> 
     <option value="4">Below average</option> 
     <option value="6">Average</option> 
     <option value="8">Good</option> 
     <option value="10">Excellent</option> 
     </select> 
    </td> 
    </tr> 
    </table> 
    <div class="buttons"> 
    <input type="submit" name="submit" value="Submit Form" id="submit"/> 
    <input type="reset" value="Reset" id="resetBtn"/> 
    </div> 

我的Java腳本來設置的形式的值:

function showBallotForm(divName) { 
    var divName = 'Contestant1'; 
    document.getElementById(divName).style.display=''; 
    var selectjudgeName = document.getElementById("judgeName"); 
    oFormObject = document.forms['ballot1']; 
    oFormElement = oFormObject.elements['form_judge']; 
    oFormElement.value = selectjudgeName.options[selectjudgeName.selectedIndex].value; 
    } 

變種divName = 'Contestant1'; - 一旦我找出法官姓名爲什麼設置並在表單上顯示沒有問題,這將被刪除,但是當我輸入所有分數並點擊「提交」按鈕時,整個表格將被記錄在csv文件中,除了一個值(form_judge)是動態設置的。順便說一句,我試圖使用getElementById oFormElement insted,結果是一樣的。我可以在窗體上看到它,但它只在csv文件中記錄單詞'judge',而不是實際的名稱。 我錯過了什麼?非常感謝您的幫助。

回答

0

我不能完全掌握你的JavaScript做什麼,因爲存在幾個誤區在裏面:

function showBallotForm(divName) { 
    var divName = 'Contestant1'; 

的divName參數從來沒有使用過,因爲它立刻重新寫的?

document.getElementById(divName).style.display=''; 

不知道你在這裏想要什麼,你想顯示隱藏的輸入?

var selectjudgeName = document.getElementById("judgeName"); 

有一個與你的HTML「judgeName」號元素,所以這是不行的,我會想你沒貼完整代碼,然後

oFormObject = document.forms['ballot1']; 
oFormElement = oFormObject.elements['form_judge']; 

好吧,但你可以通過簡單地使用document.getElementByid(「form_judge」)來做到這一點。

oFormElement.value = selectjudgeName.options[selectjudgeName.selectedIndex].value; 

但是,這裏是你的錯誤。您無法在選擇上設置值。我看到對象是一個輸入,但這很奇怪,因爲我什至不能看到selectJudgeName來自哪裏!在表單上發送的數據是selectedIndex,而不是值。所以,你想要的是找到你想要和指向它的選項是這樣的:

oFormElement.selectedIndex = (the index of the option you want) 

如果你不知道該索引,你將不得不尋找它的oFormElementobject,只是做一個對循環搜索哪個選項具有您想要的值,並且當您找到它時,將其設置爲selectedIndex並分解。

此外,什麼提交這是你在行動中命名的JavaScript,你確定發送正確的數據?

相關問題