12

入力のタイプを変更しようとしています。特に、入力をクリックした後、に変更type="text"する必要がありますtype="date"

<input type="text" placeholder="DOB" id="dob" name="dob" />
<script>
    $("#dob").click(function () {
        $(this).attr('type', 'date');

    });
</script>

私はこれをiPhoneアプリで実現したいと思っています。これはiphone4では機能しません。これを行うにはどうすればよいですか?

4

6 に答える 6

32

このコードを使用してください:

<input type="text" placeholder="DOB" id="dob" name="dob"  />
<script>
   $("#dob").click(function(){
        $(this).prop('type', 'date');

  });
</script>

これがフィドルです:http://jsfiddle.net/HNKkW/

于 2012-08-08T06:40:17.100 に答える
7

これはプロパティなので、prop()が実行します:

$("#dob").on('click', function(){
     $(this).prop('type', 'date');
});​

そして、それをdocument.ready関数でラップすることを忘れないでください!

フィドル

于 2012-08-08T06:24:49.717 に答える
0

この動作中のjsfiddleを参照してください。

を使用したブラウザの制限により、入力の種類を変更することはできません.attr。コンソールから受け取る次の警告に注意してください。

Uncaught Error: type property can't be changed 

.prop()を使用してタイプを変更できます

$("#dob").on('click', function(){
    $(this).prop('type', 'date');
});​

ここには根本的な問題が少しあるのではないかと思います。テキストボックスの種類の変更にユーザーが混乱することはありませんか?

可能であれば、ユーザーに表示する前に、テキストボックスの種類を変更してみてください。

于 2012-08-08T06:29:36.793 に答える
0

以前のバージョンのJqueryを使用する場合

$('body').delegate('#dob','click',function(){
            $(this).attr('type', 'date');

      });

または、最新のものを使用する場合は、@adenoの回答を参照してください

于 2012-08-08T06:27:12.763 に答える
0

問題の正しい解決策は、.focusプロパティと.propプロパティを使用することだ思います

<script>
    $("#dob").focus(function () {
        $(this).prop('type', 'date');

    });
</script>
于 2014-01-26T08:36:41.253 に答える
0

私にとって、要素に直接プロップを使用することは機能しませんでしたが、これは多くのいじりの後で私のために機能しました、それで私は誰かを共有し、多分誰かの頭痛を救いたいと思いました。

$(document).on('change', '#showPass', function () {
    if ($(this).is(':checked')) {
        $(this).parents('form').find('#passField').prop("type", "text");
    } else {
        $(this).parents('form').find('#passField').prop("type", "password");
    }
});
于 2016-09-13T04:53:30.700 に答える