0

我尝试更改输入标签的输入类型,但启用和禁用功能似乎不适用于整数,仅适用于文本字段。我该如何解决?

我的提交是明天,这是我的搜索代码:

 <script type="text/javascript">

            $('#exactButton').live('click', function(){
                $(this).prev().prev().prev().prev().prev().removeAttr('disabled');

                $(this).prev().prev().prev().attr('disabled',true);
                $(this).prev().prev().prev().prev().attr('disabled',true); 
            });

            $('#rangeButton').live('click',function(){
                $(this).prev().prev().removeAttr('disabled');
                $(this).prev().prev().prev().removeAttr('disabled');

                $(this).prev().prev().prev().prev().attr('disabled',true);
            });

        })
    </script>

这是我的 HTML 代码:

 <button id="button">Add List</button><br><br>
        <form id ="form" name="search" method="get" action="test.php">
            <div id="div">
                <select name ="select" >
                    ...options...
                </select>

                Value:<input type="text" name="exact" id="exactField" />

                From: <input type="text" name="from" id="fromField" />
                To: <input type="text" name="to" id="toField" />

                <br>
                <input type="button" name="answer" value="Range" id="rangeButton" />
                <input type="button" name="answer" value="Exact" id="exactButton" />

            </div>
            <br>
            <input type="submit"name="search" value="Submit">
        </form>

先感谢您..

4

3 回答 3

2

没有输入类型“整数”。只有text, password, checkbox, radio, submit, reset, file, hidden, image, 和button根据HTML 4。大多数网站使用“文本”作为数字;这种缺乏特异性是 JavaScript 的最初原因之一:检测人们在用于数字的文本字段中输入字母(和/或警告他们需要在提交之前修复这些值)。

HTML 5中,添加了其他输入类型:search, tel, url, email, datetime, date, month, week, time, datetime-local, range, 并且color现在可用;这使标记更具可读性,并允许开发人员将一些客户端验证留给浏览器。

当前推荐的进行数字输入的方法是使用type="number". 较旧的非 HTML 5 浏览器将未知类型呈现为type="text",因此当支持不可用时不会丢失任何内容。

有关启用/禁用字段的正确方法,请参阅jQuery - 禁用表单字段。输入字段的类型无关紧要 - jquery 足够聪明,可以为您做正确的事情。

于 2013-01-14T22:08:25.933 回答
1

首先。不要使用 jquery 的“live” api,它将被弃用。http://api.jquery.com/live/

注意:对于“on” api,您需要最新的 jquery。

你想这样做吗

更新的 HTML

        <button id="button">Add List</button><br><br>
          <form id ="form" name="search" method="get" action="test.php">
           <div id="maindiv">
             <div id="div">
            <select name ="select" >
                ...options...
            </select>

            Value:<input type="text" name="exact" id="exactField" />

            From: <input type="text" name="from" id="fromField" />
            To: <input type="text" name="to" id="toField" />

              </div>
            </div>
            <br>
            <input type="button" name="answer" value="Range" id="rangeButton" />
            <input type="button" name="answer" value="Exact" id="exactButton" />
        <br>
        <input type="submit"name="search" value="Submit">
    </form> 

更新的 javascript

           // When exact button is clicked, disable from and exact field and enable exactfield text field
    $(document).live('click','#exactButton', function(){
        $('#exactField').removeAttr('disabled');
        $('#fromField,#toField').attr('disabled',true);
    });

    // When range button is clicked, enable from and exact field and disable exactfield option
    $(document).on('click','#rangeButton',function(){
        $('#fromField,#toField').removeAttr('disabled');
        $('#exactField"]').attr('disabled',true);
    });

    $('#button').click(function(){
       $('#maindiv').append($('#div').clone());
     });

此代码适用于我的数字和字符。让我知道我是否缺少任何东西。

于 2013-01-14T21:59:41.273 回答
1

你用的是什么版本的jquery?

无论如何,在 1.6 中,要更改 disabled 属性,您应该使用 .prop() 函数。

例如$(this).prop('disabled', true);

于 2013-01-14T22:02:56.180 回答