问问题
217 次
1 回答
1
首先,我想明确一点,在浏览器中计算的所有值都必须在服务器上进行验证。服务器端验证确实没有替代品。客户端脚本只能用于改善用户体验。不这样做是一个等待被利用的安全漏洞。
- 要解决手头的问题,您可以利用在发布表单时未提交禁用输入的事实。因此,如果用户不选择进行定期付款
srt
,则永远不会过帐。 - 从
srt
禁用和隐藏开始。 - 隐藏的输入
src
应该有一个值0
开始。 - 添加“定期付款?” 复选框到表单。
- 如果用户选中该复选框,则
srt
通过 Javascript 启用并显示。 - 将值设置为
src
等于用户在 中选择的任何值srt
。 - 禁用并空白
srt
,src
如果用户取消选中该复选框。
标记:
<p><input type="checkbox" value="recurring" id="recurring"/>Recurring Payment?</p>
<select disabled id="srt" name="srt">
<option selected value="2">2</option>
<option value="3">3</option>
</select>
<input type="hidden" id="src" name="src" value="0">
jQuery:
$('#recurring').click(function() {
var $srt = $('#srt'),
$src = $('#src');
if (this.checked) {
$srt.prop('disabled', false).toggle();
$src.val($srt.val());
} else {
$srt.prop('disabled', true).toggle();
$src.val(0);
}
});
$('#srt').change(function() {
$('#src').val($(this).val());
});
于 2011-09-12T18:26:14.700 回答