2009-10-22 93 views
0

我目前正在研究Lotus Notes解決方案。我們只是使用Web表單,所以客戶端操作通過Javascript完成。Lotus-Notes:通過Javascript重置Radiogroup

我想完成的是重置一組無線電按鈕。有三種可能性,我不想選擇。 (A可能性「他們沒有」將是可取的,但我知道我們需要它們重置)

我目前使用的:

//Unchecks a single group of Radio Buttons 
//groupname - the name attribute of the group which selection needs to be unchecked 
function clearRadioButtonGroup(groupName) { 
    for(i=0;i<document.forms[0].elements[groupName].length;i++) { 
        document.forms[0].elements[groupName][i].checked = false; 
      } 
} 

這個套路的問題是,在RadioGroup中被複位,但在提交表單中提交舊值。有什麼建議麼?

回答

1

的問題是,清除單選按鈕作出任何有關他們的信息出現在提交的表單數據,和Domino似乎解釋,由於沒有變化到外地而非清場

我還沒有找到任何解決這個我很喜歡,但我能想到的兩個選項:

  1. 更改單選按鈕包括別無選擇選項。

另一種方法是有點clumpsy:

  • 可編輯字段添加到窗體作爲一個標誌使用,從使用CSS Web瀏覽器將其隱藏。
  • clearRadioButtonGroup也設置標誌字段的東西。
  • 使單選按鈕的onChange事件清除標誌字段。
  • WebQueryOpen代理程序中,如果標誌字段非空,請將單選按鈕字段設置爲空。

另一種選擇是使用一些聰明的JavaScript/CSS技巧來隱藏別無選擇選項,並clearRadioButtonGroup簡單地設置這樣的選擇。

+0

使用代理立即清除提交的廣播組,現在就像一個魅力:) – leen 2009-11-12 10:57:00

1

您是否確定舊價值實際上正在提交?也許它只是沒有被更新(擦除)在您正在編輯的NotesDocument中?只是一個預感......

順便說一句,你可以下載一個名爲Fiddler的程序,它可以讓你檢查HTTP POSTs,並且你可以確認POST數據沒有包含該單選按鈕組的任何值。這可能有助於縮小問題範圍。

+0

這也可能是問題所在。我想刪除文檔中的值。那麼,我該如何改變Javascript調用來清除文檔中的數據呢? 明天在工作中試試小提琴手,謝謝! – leen 2009-10-22 21:06:43

+0

所以,終於有時間來嘗試一下了。 清除收音機字段後,舊值再次發送。 – leen 2009-11-03 08:08:01

2

您使用的是什麼版本的Domino?由於7.x(我認爲)%% Surrogate字段是作爲HTML中的隱藏字段生成的,因此您可以重置,因此在取消選擇所有單選按鈕選項後,可以清除%% Surrogate字段,然後您應該避免選擇「以上都不是」選項。

馬特

+0

我們使用的是Domino 8。所以,我現在正在嘗試您的建議,謝謝! – leen 2009-11-03 08:41:01

+0

mh,請問您是否這麼善良,併發布重置代理字段的方法示例? 我搜索了網頁,發現http://www.codestore.net/store.nsf/unid/BLOG-20060609/是一個想法。要打印Surrogate字段的值的作品,但在Firefox中改變它失敗(字段未定義?) 感謝迄今!要重述這個問題 – leen 2009-11-03 09:50:39

1

把下面的直通HTML代碼的形式:

<input type="hidden" name="FieldName" id="FieldID" value=""> 

(字段名和FieldID窗體上的名稱和您的無線電場的ID)

當你通過Javascript重置您的收音機並提交您的文檔,該字段將被重置爲空白。