我有一个与输入金额直接相关的复选框.如果有输入金额,则必须在过账前选中复选框


I have a checkbox that correlates directly to an input amount. If there is an input amount the checkbox has to be checked before post

我在php中为一个标准复选框创建了一个函数,它被称为cbox,还有一个标准输入框,称为inp。

<tr><td><?php cbox('charge_cc'); ?> Charge CC? Amount $ <?php inp('charge_amt'); ?></td></tr>

如果在"charge_amt"inp字段中输入了金额,则在过账/提交之前也需要选中复选框。

如果没有在输入字段中输入金额,则他们不需要选中该框,可以继续填写表格的其余部分并提交。我不确定如何实现这一点,因为我认为我的cbox和inp的php函数正在破坏我的jquery/javascript。

到目前为止,我已经尝试了一些变体:

<script type="text/javascript">
function validate(){
if (document.getElementById('charge_cc').checked){
          alert("checked") ;
}else{
alert("You didn't check it! Let me check it for you.")
}
}
</script>

没有用,任何帮助都将不胜感激。

<td><input type="hidden" name="charge_cc" value="0" class="charge_cc">
    <input type="checkbox" id="charge_cc" name="charge_cc" value="1" class="charge_cc"> Charge CC? Amount $ <input type="text" id="charge_amt" name="charge_amt" value="" size="8" maxlength="6"></td>

如果您只需要根据charge_amt文本输入中的条目选中/取消选中复选框,我建议:

$('#charge_amt').keyup(function(){
    var that = this;
    $('#charge_cc').prop('checked', function(){
        return that.value.length;
    });
});

JS Fiddle演示。

如果您想防止用户在文本输入中出现值时取消选中复选框:

$('#charge_amt').keyup(function () {
    var test = this.value.length;
    $('#charge_cc').prop({
        'checked': test,
            'disabled': test
    });
});

JS Fiddle演示。

使用jquery。。。如果您有一个id为charge_cc的复选框,这应该可以使用

if($("#charge_cc").prop("checked")) ...

jsfiddle处理您的html和警报:http://jsfiddle.net/kmV9m/

$(function () {
    $('#charge_amt').on('change', function () {
        var amount = $(this).val();
        if (amount.length > 0) {
            $('#charge_cc').prop('checked', 'checked');
        } else {
            $('#charge_cc').prop('checked',false);
        }
    });
})

在这里使用一点jQuery来为您做这项工作应该可以做到。

http://jsfiddle.net/devlshone/2HZFE/