1

我在电子邮件偏好中心工作,用户有 4 个选项 - 3 个选项用于电子邮件频率,最后一个选项是取消订阅。我的表单传递了两个不同的字段 - 电子邮件频率和电子邮件状态。我在使用电子邮件状态字段时遇到问题。

对于单选按钮 1-3,我希望它发布电子邮件状态 =“I”,并且电子邮件频率为“全部”、“每周”或“每月”

对于最后一个单选按钮,我只希望它发布电子邮件状态 =“O”

我似乎无法让两者都工作 - 它要么只通过 I,然后取消订阅单选按钮不起作用,要么电子邮件状态将为取消订阅发布 O,但随后按钮 1-3 的值为空。

下面是我正在使用的基本代码。

<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="W" id="EMAIL_FREQUENCY_STATUS" >每周
<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="M" id="EMAIL_FREQUENCY_STATUS"> 每月
<input type="radio" name="EMAIL_FREQUENCY_STATUS" value="A" id="EMAIL_FREQUENCY_STATUS"> 全部


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

<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"/>每周向我发送 1 封电子邮件

 <input type="radio" name="EMAIL_Monthly" value="M" id="EMAIL_Monthly" onClick="document.getElementById('EMAIL_STATUS').value=I"/> 每月向我发送 1 封电子邮件。

 <input type="radio" name="EMAIL_All" value="A" id="EMAIL_All" onClick="document.getElementById('EMAIL_STATUS').value=I"/> 向我发送所有新闻、销售和优惠信息。

 <input type="radio" name="EMAIL_STATUS" value="O" id="EMAIL_STATUS" onClick="document.getElementById('EMAIL_STATUS').value=O"/>退订我的所有电子邮件。


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


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


4

1 回答 1

0
<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所有单选按钮的属性;它们是重复的,可能不需要。我给它们都起了相同的名字——当你取消订阅时,没有频率,所以它应该取消选中频率。只有一个选项的单选按钮没有意义;如果您不希望它成为组的一部分,它应该是一个复选框,而不是单选按钮。

就个人而言,我没有看到隐藏字段的意义。你不能在服务器代码中做同样的事情吗?

于 2013-07-11T18:25:41.767 回答