0

我有 10 个用于数值的文本字段。每一个都有一个复选框。如果选中该复选框,则在文本字段中输入的值必须转换为负值,然后保存在数据库中。如果再次检查,它应该变为阳性。

<td><input type="text" name="or" class="num" maxlength="5" ?>" id="or"/>db</td>
<td><input type="text" name="or2" class="num" maxlength="5" />db</td>
<td><input type="text" name="or4" class="num" maxlength="5" />db</td>
<td><input type="text" name="or8" class="num" maxlength="5" />db</td>
<td><input type="text" name="or5" class="num" maxlength="5" />db</td>

每个文本框的复选框

<td>-<input type="checkbox" name="orneg1 " class="check1" id="org"  /></td>
<td>-<input type="checkbox" name="org2" class="check2" /></td>
<td>-<input type="checkbox" name="org4" class="check3" /></td>
<td>-<input type="checkbox" name="org8" class="check4" /></td>
<td>-<input type="checkbox" name="org5" class="check5" /></td>
4

3 回答 3

1

这可以工作:

$('input[type=checkbox]').each(function(i){
   if ($(this).attr('checked') == 'checked') {
       var inputText  = $('input[type=text]:eq('+i+')');
       var inputValue = parseInt(inputText.val(),10);
       if (inputValue > 0) {
           inputValue = '-'+inputValue;
       } else {
           inputValue = (-1) * inputValue;
       }
       inputText.attr('value', inputValue);
   } 
});
于 2012-07-10T07:43:53.557 回答
0

工作示例演示 http://jsfiddle.net/SQSMK/

我会建议也研究一下 JqueryisNanisNumericapi,

休息这个演示应该会有所帮助::)

Ps - 我希望你有我在下面的 html 中加上一些小的调整的标签tabletr

代码

$('input[type="checkbox"]').click(function() {

    if ($(this).is(':checked')) {

        $('input[type="text"][name="' + $(this).prop('name') + '"]').val(-$('input[type="text"][name="' + $(this).prop('name') + '"]').val());

    } else {
        $('input[type="text"][name="' + $(this).prop('name') + '"]').val(-parseInt($('input[type="text"][name="' + $(this).prop('name') + '"]').val()));
    }
});​

html

<table>
    <tr>
<td><input type="text" name="or1" class="num" maxlength="5" id="or"/>db</td>
                    <td><input type="text" name="or2" class="num" maxlength="5" />db</td>
                    <td><input type="text" name="or4" class="num" maxlength="5" />db</td>
                    <td><input type="text" name="or8" class="num" maxlength="5" />db</td>
                    <td><input type="text" name="or5" class="num" maxlength="5" />db</td>
    </tr>
    <tr>

    <td>-<input type="checkbox" name="or1" class="check1" id="org"/></td>
                    <td>-<input type="checkbox" name="or2" class="check2"  /></td>
                    <td>-<input type="checkbox" name="or3" class="check3"  /></td>
                    <td>-<input type="checkbox" name="or8" class="check4" /></td>
                    <td>-<input type="checkbox" name="or5" class="check5" /></td>
    </tr>
</table​
于 2012-07-10T07:45:41.017 回答
0

你在这里有两个不同的东西:

  • 首先,您要在复选框上的 onClick 上添加一个行为。使用 jQuery 处理这个应该没问题。在 onClick clabback 中,如果选中该复选框,您只需将相关输入文本的值设置为 -value。否则,您将其设置为 abs(value)

  • 然后您正在谈论将 satte 保存在数据库中。为此,您需要使用 ajax 调用将输入值作为键/值对传输到服务器。

我想你现在知道该怎么做就可以自己处理代码了:)

于 2012-07-10T07:39:35.360 回答