2016-12-13 11 views
2

Есть ли способ достичь чего-то подобного?Есть ли способ принять только определенный тип данных, такой как дата с атрибутом contenteditable html?

<pre> 
<p contenteditable="true" type="date">12-04-1994</p> 
</pre> 

поэтому он принимает только форматы даты?

+0

Вы имеете в виду, как '<входной тип =«Дата»/>' в HTML5 – rapidRoll

+0

нет, это не вход, я должен использовать его с contenteditable тега, так как его редактируемые свойство динамический и может измениться на false. – chandan7

+0

Вы можете добиться этого, применив некоторые ограничения на прием строки. – rapidRoll

ответ

1

Это может помочь; обратите внимание, что он игнорирует все после 10-го символа и не проверяет фактические значения даты для достоверности (например, вы можете сказать 45/96/2543, и это будет действительным).

setInterval(check,100); 
 
function check(){ 
 
    var date=document.getElementById("date").innerHTML; 
 
    if(!isNaN(parseInt(date.charAt(0), 10))&&!isNaN(parseInt(date.charAt(1), 10))&&date.charAt(2)=="-"&&date.charAt(5)=="-"&&!isNaN(parseInt(date.charAt(3), 10))&&!isNaN(parseInt(date.charAt(4), 10))&&!isNaN(parseInt(date.charAt(6), 10))&&!isNaN(parseInt(date.charAt(7), 10))&&!isNaN(parseInt(date.charAt(8), 10))&&!isNaN(parseInt(date.charAt(9), 10))){ 
 
    document.getElementById("output").innerHTML="Yes Date"; 
 
    } else { 
 
    document.getElementById("output").innerHTML="No Date"; 
 
    } 
 
}
<pre> 
 
<p contenteditable='true' id='date' style='border:1px solid black;'>Edit me</p> 
 
<p id='output'></p> 
 
</pre>

+0

Я хочу, чтобы диалоговое окно даты было выскользнуто, как в , возможно ли это? – chandan7

+1

Вы можете сделать незаметный ввод и поместить его в свой элемент 'p'. – Feathercrown