Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在html中创建两行文本框-占位符保持不变_Html - Fatal编程技术网

如何在html中创建两行文本框-占位符保持不变

如何在html中创建两行文本框-占位符保持不变,html,Html,我想创建一个文本框,就像附加在HTML、JS中的图像一样。请分享一些想法 在图像中,您可以看到3个案例 顶级成功案例 中间-电话号码为空时的默认值文本框显示占位符电话号码 当用户输入电话号码时,底部的Place holder显示在顶部 我举了一个例子,可以帮助你理解你提出的这个问题 HTML <body ng-app> <label for="pN">Phone number:</label> <input id="pN" type="text"

我想创建一个文本框,就像附加在HTML、JS中的图像一样。请分享一些想法

在图像中,您可以看到3个案例

顶级成功案例

中间-电话号码为空时的默认值文本框显示占位符电话号码

当用户输入电话号码时,底部的Place holder显示在顶部 我举了一个例子,可以帮助你理解你提出的这个问题

HTML

<body ng-app>
  <label for="pN">Phone number:</label>
  <input id="pN" type="text" value="1-800-CALL-MOM"></input>
<div style="height: 10px; border-bottom: 1px dotted silver;margin-bottom: 10px;"></div>

<div class="wrapper">PhoneNumberToDisplay: <div id="out1"></div></div>

<div class="wrapper">Letters Converted: <div id="out2"></div></div>

<div class="wrapper">PhoneNumberToDial: <div id="out3"></div></div>


  <div id="out4"></div>
  <div id="out3"></div>
</body>
<h1>Phone field scrubbing utility</h1>

<ul>
    <li>Enter any content (characters, puntuation, etc.)</li>
    <li>As long as there are 10 digits it will validate true</li>
    <li>Providing the first digit is not 0 or 1</li>
    <li>And providing there is not 1 digit repeated 10 times</li>
    <li>The &quot;format it&quot; button will do just that</li>
    <li>The &quot;submit it&quot; button will strip out everything but digits</li>
</ul>

<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input type="button" id="format" value="format it">
<input type="button" id="submit" value="submit it">
<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>

<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>

<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>
JavaScript

var phoneLetterToDigit = ['2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9'];

var raw = '';
var digitsReplaced = '';
var numbersOnly = '';

$('#pN').keyup(function () {
  update();
});

function update() {
  raw = $("#pN").val();
  digitsReplaced = '';

  $.each(raw.split(''), function(a,b) {
    var l = b.toUpperCase().charCodeAt(0) - 65;

    if (l >= 0 && l <= 25) {
       digitsReplaced += phoneLetterToDigit[l];
    }
    else {
      digitsReplaced += b;
    }
  });

  numbersOnly = digitsReplaced.replace(/[^0-9.]/g,'');

  $("#out1").html(raw);
  $("#out2").html(digitsReplaced);
  $("#out3").html(numbersOnly);
}

update();
$(function(){
    $('#phone1').phoneScrubber({
            focusClass: 'on',
            goodClass: 'goodClass',
            badClass: 'badClass',
            testOnKeyup: true
    });

    $.fn.phoneScrubber.formatAll();

    $('#format').click(function(){
        $.fn.phoneScrubber.formatAll();
    });

    $('#submit').click(function(){
        if($.fn.phoneScrubber.validateAll()){
            $.fn.phoneScrubber.submitAll();
        }
    });
});

(function($) {
    $.fn.phoneScrubber = function(opts) {

        var
        obj = this,
            defaults = {
                    phoneCleaner    : /\D/g 
                    , repeated      : /(.)\1{9,}/g
                    , minLen        : 10
                    , omit          : [0, 1]
                    , format        : '() -'
                    , focusClass    : null
                    , testOnKeyup   : true
                    , goodClass     : null
                    , badClass      : null
                    , formatOnBlur  : false
            }, settings = $.extend({}, defaults, opts)
                    , testStr
                    , aFormat   = settings.format.split('')
                    , pre1      = aFormat[0]
                    , pre2      = aFormat[1] + aFormat[2]
                    , sep       = aFormat[3]
                    , message   = ''
                    , part1     = ''
                    , part2     = ''
                    , part3     = ''
                    , returnVal = ''
                    , setVal
                    , test
                    , cleanIt
                    , formatNumber
                    , cleanNumber
                    , errCount  = 0
                    , errs      = []
                    ;

        return this.each(function() {

            test = function(dirty) {
                var test        = dirty.replace(settings.phoneCleaner,'')
                    , testLen   = test.length
                    , startChar = parseInt(test.substring(0,1))
                    , testStr   = test.substring(0,10)

                if(testLen < settings.minLen){
                    // message = 'invalid length: '+testLen;
                    // alert(message);
                    return false;
                }

                if(settings.omit.indexOf(startChar)!==-1){
                    // message = 'First character cannot be '+startChar;
                    // alert(message);
                    return false;
                }

                if(testStr.match(settings.repeated)){
                    // message = "Nice try... repeated characters";
                    // alert(message);
                    return false;
                }
                return true;
            }

            cleanIt = function(dirty){
                return dirty.replace(settings.phoneCleaner,'');
            }         

            $.fn.phoneScrubber.formatNumber = function(dirty) {
                var clean = cleanIt(dirty);
                clean = clean.substring(0, settings.minLen)
                part1 = clean.substring(0,3);
                part2 = clean.substring(3,6);
                part3 = clean.substring(6,10);

                returnVal = pre1+part1+pre2+part2+sep+part3;
                return returnVal;
            }

            $.fn.phoneScrubber.cleanNumber = function(dirty) {
                var clean = cleanIt(dirty);
                clean = clean.substring(0, settings.minLen)
                return clean;
            }

            $.fn.phoneScrubber.formatAll = function(){
                obj.each(function(){
                    var $this = $(this);
                    if(test($this.val())){
                        $this.val($.fn.phoneScrubber.formatNumber($this.val()));
                    }
                });
            }

            $.fn.phoneScrubber.validateAll = function(){

                var returnVal = true;

                errs = [];

                obj.each(function(){
                    if (test($(this).val())==false){
                        returnVal = false;
                        errs.push(this);
                    }
                });
                return returnVal;
            }

            $.fn.phoneScrubber.getErrFields = function(){
                return errs;
            }

            $.fn.phoneScrubber.submitAll = function(){
                obj.each(function(){
                    var $this = $(this);
                    if(test($this.val())){
                        $this.val($.fn.phoneScrubber.cleanNumber($this.val()));
                    }
                });
            }

            obj.focus(function() {
                $(this).addClass(settings.focusClass);
            })
                .keyup(function() {
                    var $this = $(this);
                    if(settings.testOnKeyup){
                        if(test($this.val())){
                            // good
                            $this
                                .removeClass(settings.badClass)
                                .addClass(settings.goodClass);
                        }else{
                            // bad
                            $this
                                .removeClass(settings.goodClass)
                                .addClass(settings.badClass);
                        }
                    }
            })
                .blur(function() {
                    var $this = $(this);
                    $this.removeClass(settings.focusClass);
                    if(test($this.val())){
                        if(settings.formatOnBlur){
                            $this.val(formatNumber($this.val()));
                    }
                }
            });
        });
    }
})(jQuery);
$(document)
    .one('focus.textarea', '.autoExpand', function(){
        var savedValue = this.value;
        this.value = '';
        this.baseScrollHeight = this.scrollHeight;
        this.value = savedValue;
    })
    .on('input.textarea', '.autoExpand', function(){
        var minRows = this.getAttribute('data-min-rows')|0,
             rows;
        this.rows = minRows;
    console.log(this.scrollHeight , this.baseScrollHeight);
        rows = Math.ceil((this.scrollHeight - this.baseScrollHeight) / 17);
        this.rows = minRows + rows;
    });
var phoneLetterToDigit=[2'、'2'、'2'、'3'、'3'、'4'、'4'、'5'、'5'、'6'、'6'、'7'、'7'、'8'、'8'、'9'、'9'、'9'、'9';
var原始值=“”;
var digitsReplaced='';
var numbersOnly='';
$('#pN').keyup(函数(){
更新();
});
函数更新(){
原始=$(“#pN”).val();
数字替换=“”;
$.each(原始分割(“”),函数(a,b){
var l=b.toUpperCase().charCodeAt(0)-65;

如果(l>=0&&l可以,则需要JQuery来实现这一点

var placeholder='这是一行\n这应该是新行';
$('textarea').attr('value',占位符);
$('textarea').focus(函数(){
if($(this).val()==占位符){
$(this.attr('value','');
}
});
$('textarea').blur(函数(){
if($(this.val()=''){
$(this.attr('value',占位符);
}    
});
textarea{
宽度:300px;
高度:100px;
颜色:灰色;
}

示例2 我想再次尝试用另一个代码示例来帮助您

HTML

<body ng-app>
  <label for="pN">Phone number:</label>
  <input id="pN" type="text" value="1-800-CALL-MOM"></input>
<div style="height: 10px; border-bottom: 1px dotted silver;margin-bottom: 10px;"></div>

<div class="wrapper">PhoneNumberToDisplay: <div id="out1"></div></div>

<div class="wrapper">Letters Converted: <div id="out2"></div></div>

<div class="wrapper">PhoneNumberToDial: <div id="out3"></div></div>


  <div id="out4"></div>
  <div id="out3"></div>
</body>
<h1>Phone field scrubbing utility</h1>

<ul>
    <li>Enter any content (characters, puntuation, etc.)</li>
    <li>As long as there are 10 digits it will validate true</li>
    <li>Providing the first digit is not 0 or 1</li>
    <li>And providing there is not 1 digit repeated 10 times</li>
    <li>The &quot;format it&quot; button will do just that</li>
    <li>The &quot;submit it&quot; button will strip out everything but digits</li>
</ul>

<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input class="phone" id="phone1" value="XXXXXXXXXX"><br>
<input type="button" id="format" value="format it">
<input type="button" id="submit" value="submit it">
<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>

<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>

<textarea class='autoExpand' rows='3' data-min-rows='3' placeholder='Auto-Expanding Textarea'></textarea>
JavaScript

var phoneLetterToDigit = ['2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9'];

var raw = '';
var digitsReplaced = '';
var numbersOnly = '';

$('#pN').keyup(function () {
  update();
});

function update() {
  raw = $("#pN").val();
  digitsReplaced = '';

  $.each(raw.split(''), function(a,b) {
    var l = b.toUpperCase().charCodeAt(0) - 65;

    if (l >= 0 && l <= 25) {
       digitsReplaced += phoneLetterToDigit[l];
    }
    else {
      digitsReplaced += b;
    }
  });

  numbersOnly = digitsReplaced.replace(/[^0-9.]/g,'');

  $("#out1").html(raw);
  $("#out2").html(digitsReplaced);
  $("#out3").html(numbersOnly);
}

update();
$(function(){
    $('#phone1').phoneScrubber({
            focusClass: 'on',
            goodClass: 'goodClass',
            badClass: 'badClass',
            testOnKeyup: true
    });

    $.fn.phoneScrubber.formatAll();

    $('#format').click(function(){
        $.fn.phoneScrubber.formatAll();
    });

    $('#submit').click(function(){
        if($.fn.phoneScrubber.validateAll()){
            $.fn.phoneScrubber.submitAll();
        }
    });
});

(function($) {
    $.fn.phoneScrubber = function(opts) {

        var
        obj = this,
            defaults = {
                    phoneCleaner    : /\D/g 
                    , repeated      : /(.)\1{9,}/g
                    , minLen        : 10
                    , omit          : [0, 1]
                    , format        : '() -'
                    , focusClass    : null
                    , testOnKeyup   : true
                    , goodClass     : null
                    , badClass      : null
                    , formatOnBlur  : false
            }, settings = $.extend({}, defaults, opts)
                    , testStr
                    , aFormat   = settings.format.split('')
                    , pre1      = aFormat[0]
                    , pre2      = aFormat[1] + aFormat[2]
                    , sep       = aFormat[3]
                    , message   = ''
                    , part1     = ''
                    , part2     = ''
                    , part3     = ''
                    , returnVal = ''
                    , setVal
                    , test
                    , cleanIt
                    , formatNumber
                    , cleanNumber
                    , errCount  = 0
                    , errs      = []
                    ;

        return this.each(function() {

            test = function(dirty) {
                var test        = dirty.replace(settings.phoneCleaner,'')
                    , testLen   = test.length
                    , startChar = parseInt(test.substring(0,1))
                    , testStr   = test.substring(0,10)

                if(testLen < settings.minLen){
                    // message = 'invalid length: '+testLen;
                    // alert(message);
                    return false;
                }

                if(settings.omit.indexOf(startChar)!==-1){
                    // message = 'First character cannot be '+startChar;
                    // alert(message);
                    return false;
                }

                if(testStr.match(settings.repeated)){
                    // message = "Nice try... repeated characters";
                    // alert(message);
                    return false;
                }
                return true;
            }

            cleanIt = function(dirty){
                return dirty.replace(settings.phoneCleaner,'');
            }         

            $.fn.phoneScrubber.formatNumber = function(dirty) {
                var clean = cleanIt(dirty);
                clean = clean.substring(0, settings.minLen)
                part1 = clean.substring(0,3);
                part2 = clean.substring(3,6);
                part3 = clean.substring(6,10);

                returnVal = pre1+part1+pre2+part2+sep+part3;
                return returnVal;
            }

            $.fn.phoneScrubber.cleanNumber = function(dirty) {
                var clean = cleanIt(dirty);
                clean = clean.substring(0, settings.minLen)
                return clean;
            }

            $.fn.phoneScrubber.formatAll = function(){
                obj.each(function(){
                    var $this = $(this);
                    if(test($this.val())){
                        $this.val($.fn.phoneScrubber.formatNumber($this.val()));
                    }
                });
            }

            $.fn.phoneScrubber.validateAll = function(){

                var returnVal = true;

                errs = [];

                obj.each(function(){
                    if (test($(this).val())==false){
                        returnVal = false;
                        errs.push(this);
                    }
                });
                return returnVal;
            }

            $.fn.phoneScrubber.getErrFields = function(){
                return errs;
            }

            $.fn.phoneScrubber.submitAll = function(){
                obj.each(function(){
                    var $this = $(this);
                    if(test($this.val())){
                        $this.val($.fn.phoneScrubber.cleanNumber($this.val()));
                    }
                });
            }

            obj.focus(function() {
                $(this).addClass(settings.focusClass);
            })
                .keyup(function() {
                    var $this = $(this);
                    if(settings.testOnKeyup){
                        if(test($this.val())){
                            // good
                            $this
                                .removeClass(settings.badClass)
                                .addClass(settings.goodClass);
                        }else{
                            // bad
                            $this
                                .removeClass(settings.goodClass)
                                .addClass(settings.badClass);
                        }
                    }
            })
                .blur(function() {
                    var $this = $(this);
                    $this.removeClass(settings.focusClass);
                    if(test($this.val())){
                        if(settings.formatOnBlur){
                            $this.val(formatNumber($this.val()));
                    }
                }
            });
        });
    }
})(jQuery);
$(document)
    .one('focus.textarea', '.autoExpand', function(){
        var savedValue = this.value;
        this.value = '';
        this.baseScrollHeight = this.scrollHeight;
        this.value = savedValue;
    })
    .on('input.textarea', '.autoExpand', function(){
        var minRows = this.getAttribute('data-min-rows')|0,
             rows;
        this.rows = minRows;
    console.log(this.scrollHeight , this.baseScrollHeight);
        rows = Math.ceil((this.scrollHeight - this.baseScrollHeight) / 17);
        this.rows = minRows + rows;
    });
$(函数(){
$('#phone1')。电话洗涤器({
焦点类:“on”,
goodClass:“goodClass”,
badClass:“badClass”,
testOnKeyup:正确
});
$.fn.PhoneScriber.formatAll();
$(“#格式”)。单击(函数(){
$.fn.PhoneScriber.formatAll();
});
$(“#提交”)。单击(函数(){
if($.fn.phonescriber.validateAll()){
$.fn.phonescruber.submitAll();
}
});
});
(函数($){
$.fn.PhoneScriber=函数(选项){
变量
obj=这个,
默认值={
电话清洁器:/\D/g
,重复:/()\1{9,}/g
,minLen:10
,省略:[0,1]
,格式:“()-”
,focusClass:null
,testOnKeyup:true
,goodClass:null
,badClass:null
,formatOnBlur:false
},设置=$.extend({},默认值,选项)
,testStr
,aFormat=settings.format.split(“”)
,pre1=a格式[0]
,pre2=a格式[1]+a格式[2]
,sep=a格式[3]
,消息=“”
,第1部分=“”
,第2部分=“”
,第三部分=“”
,returnVal=''
,setVal
,测试
,清洁
,格式编号
,清洁编号
,errCount=0
,errs=[]
;
返回此值。每个(函数(){
测试=功能(脏){
var test=dirty.replace(settings.phoneCleaner“”)
,testLen=test.length
,startChar=parseInt(test.substring(0,1))
,testStr=test.substring(0,10)
if(testLen