我正在構(gòu)建一個小的網(wǎng)頁,該網(wǎng)頁將用于通過預(yù)定義的設(shè)置操作來控制一組RGB led。為了以圖形方式配置操作,將使用一個包含開始和結(jié)束像素,相關(guān)顏色信息以及要使用的設(shè)置操作的表單。(順便說一句,不提交表單,因此,如果其他結(jié)構(gòu)更好用,則可以改用它。Forms support name,因此至少可以幫助其中的一些。Javascript將表單中的數(shù)據(jù)解析為JSON文件與AJAX稍后發(fā)送的。我已經(jīng)得到了那大多是想通了,但有一些地方我要去哪里的問題,彈出復(fù)雜的事情,試圖讀出所有形式的數(shù)據(jù)一次在一個簡單方式。)每個表單都有一些動作(onChange選擇該動作的下拉菜單或刪除按鈕)僅影響該表單(或其一部分)。還應(yīng)該有一種一次性獲取所有表單并提取數(shù)據(jù)以發(fā)送到服務(wù)器的方法(name由于THAT數(shù)據(jù)安全地包含在表單可訪問元素中,因此可以很好地工作)。我也無法使用JQuery之類的幫助程序庫,因為無法訪問Internet。所有代碼都必須托管在服務(wù)器上,而且空間極?。ㄍ泄芩氖乔度胧教幚砥鳎?。我現(xiàn)在不想添加40KB的Jquery。我遇到的問題是我需要更改標(biāo)簽文本并根據(jù)選擇的選項顯示或隱藏元素。例如,一種顏色只需要一個顏色輸入標(biāo)簽,而線性淡入淡出則需要兩個顏色標(biāo)簽。其他人則不需要顏色,因為它們會對現(xiàn)有的顏色模式執(zhí)行操作。使用aform可以name通過查找form_as_JS_var.elements.name來訪問具有屬性集的事物。遺憾的是,這不適用于原始HTML或spans或除特定于表單的元素以外的任何其他內(nèi)容。我還發(fā)現(xiàn),document.getElementById()除了document(如果到目前為止還不很清楚,我對HTML和JS有點陌生)以外,它沒有其他等效項。我一直希望做類似.getElementById(“ color1”)之類的事情(它可能會讓我使用相同的標(biāo)簽以簡化操作,只要它們不會以每種形式重復(fù)使用,但事后看來有點愚蠢)。無論哪種方式,我都需要確保每個添加的表單都包含多個全局唯一的ID,并且 以某種方式 當(dāng)受影響的物料和觸發(fā)更改的物料具有相同的形式時,請查找ID!我確實發(fā)現(xiàn)了該label標(biāo)簽,但是它(出于某些無法解釋的原因)綁定到ID而不是名稱(并且很煩人,無法使用JS進(jìn)行設(shè)置,但這是另一回事了)。因此,我仍然堅持使用從全局訪問的全局ID,document而不是從任何形式的本地表單方法訪問。我要使用的HTML表單如下:<form id="color_form_0" class="color_form"> <fieldset> <legend id="legend_0">New Control Entry</legend> <label for="legend_0">Type: </label> <select name="type" id="type_0"> <option value="rainbow">Rainbow Pattern</option> <option value="repeat">Clone Fill</option> <option value="fade">Linear Fade</option> <option value="fill">Single Color</option> <option value="rotate">Animation</option> </select> <label for="color1_0">Color 1: </label> <input type="color" name="color1" id="color1_0"> <label for="color2_0">Color 2: </label> <input type="color" name="color2" id="color2_0"> <br>請注意,其中很多都需要唯一的ID(添加了_#部分)。我必須具有GUID才能使標(biāo)簽正確訪問它們(沒有ID使得標(biāo)簽不可訪問,非唯一ID使它們?nèi)烤鹊亟壎ǖ骄哂性揑D的每個項目(跨表格))。我還必須有一個ID才能更改圖例標(biāo)簽的名稱(應(yīng)該更改為與當(dāng)前選擇的Type相匹配。
使用javascript動態(tài)編輯多個相同的HTML表單
慕慕森
2021-05-01 05:25:58