Предаване на конкретна стойност за скрито поле с помощта на javascript

Работя върху център за предпочитания за имейли и потребителят има 4 опции - 3 опции са за честота на имейли и последната опция е да се отпише. Имам две различни полета, които моята форма предава - честота на имейли и статус на имейли. Имам проблем с полето за статус на имейла.

За радио бутони 1-3 искам да публикува статус на имейл ="I", а също така честотата на имейлите е или "Всички", "Седмично" или "Месечно"

За последния бутон за избор искам само да публикува имейл статус = "O"

Изглежда не мога да накарам и двете да работят - или преминава само I и след това радиобутонът за отписване не работи, или статусът на имейл ще публикува O за отписването, но след това нулеви стойности за бутони 1-3.

По-долу е основният код, с който работя.

<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="W" id="EMAIL_FREQUENCY_STATUS"  >Weekly
<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="M" id="EMAIL_FREQUENCY_STATUS"> Monthly
<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="A" id="EMAIL_FREQUENCY_STATUS"> All


<input type="radio" name="EMAIL_STATUS" value="O" id="EMAIL_STATUS"> Unsubscribe!

<input name="Update" type="image" value="Send" src="update_btn.jpg" alt="Update" >

Опитах да използвам различни функции на javascript, но не мога да го накарам да работи както желая. Всяка помощ би била страхотна!

Актуализация 7/11:

Ето един вариант на код, който опитах...


<input type="radio" name="EMAIL_Weekly" value="W" id="EMAIL_Weekly"  onClick="document.getElementById('EMAIL_STATUS').value=I"/>Send me 1 email per week

 <input type="radio" name="EMAIL_Monthly" value="M" id="EMAIL_Monthly" onClick="document.getElementById('EMAIL_STATUS').value=I"/> Send me 1 email per month.

 <input type="radio" name="EMAIL_All" value="A" id="EMAIL_All" onClick="document.getElementById('EMAIL_STATUS').value=I"/> Send me all news, sales & offers. 

 <input type="radio" name="EMAIL_STATUS" value="O" id="EMAIL_STATUS" onClick="document.getElementById('EMAIL_STATUS').value=O"/>Unsubscribe me from all emails.


<input name="Update" type="image" value="Send" src="update_btn.jpg" alt="Update" >


 <input type="hidden" name="EMAIL_STATUS" value="" id="EMAIL_STATUS" />



person QA Test    schedule 11.07.2013    source източник
comment
Моля, покажете поне един от вашите опити, за да можем да ви обясним къде грешите. И къде е скритото поле във вашата форма?   -  person Barmar    schedule 11.07.2013
comment
Всички входове в набор от радио бутони трябва да имат едно и също име. Щракването върху бутона Отписване няма да изключи другите бутони, тъй като има различно име.   -  person Barmar    schedule 11.07.2013
comment
И имате дублиращи се идентификатори, което не е позволено.   -  person Barmar    schedule 11.07.2013
comment
Добавих версия на кода, който се опитах да използвам. Ако всички радио бутони трябва да имат едно и също име, как предлагате да направя този център за предпочитания? Трябва да имам бутони за честота на имейли и след това бутон за отписване.   -  person QA Test    schedule 11.07.2013
comment
Ако промених бутоните за честота на имейли, за да имат различни стойности...има ли начин да предам имейл status=I за бутони 1-3 и след това просто имейл status=O само за бутона за отписване?   -  person QA Test    schedule 11.07.2013


Отговори (1)


<script>
function update_permission(perm) {
  document.getElementById('EMAIL_PERMISSION_STATUS').value = perm;
}
</script>

<form ...>
    <input type="radio" name="EMAIL_FREQUENCY_STATUS" value="W" onclick="update_permission('I')"/>Send me 1 email per week
    <input type="radio" name="EMAIL_FREQUENCY_STATUS" value="M" onclick="update_permission('I')"/> Send me 1 email per month.
    <input type="radio" name="EMAIL_FREQUENCY_STATUS" value="A" onclick="update_permission('I')"/> Send me all news, sales & offers. 
    <input type="radio" name="EMAIL_FREQUENCY_STATUS" value="O" onclick="update_permission('O')"/>Unsubscribe me from all emails.

    <input name="Update" type="image" value="Send" src="update_btn.jpg" alt="Update" >
    <input type="hidden" name="EMAIL_PERMISSION_STATUS" value="" id="EMAIL_PERMISSION_STATUS" />
</form>

Отървах се от атрибутите id на всички радио бутони; те бяха дубликати и вероятно не са необходими. Дадох им едно и също име -- когато се отпишете, няма честота, така че трябва да премахнете отметката от честотата. Радио бутон само с един избор няма смисъл; ако не искате да е част от групата, трябва да е квадратче за отметка, а не бутон за избор.

Лично аз не виждам смисъл от скритото поле. Не можахте ли да направите същото в кода на сървъра?

person Barmar    schedule 11.07.2013