2016-07-27 79 views
3
<div class="input-field col s4" style="max-height: 58px;"> 
        <input id="email" name="email" type="email" maxlength="30" class="validate" required length='30' disabled="true"> 
        <label for="email" data-error="Invalid Email ID">Email ID</label> 
       </div> 
<div class="input-field col s4" style="max-height: 58px;"> 
        <input id="dob" name="dob" type="date" class="datepicker" required> 
        <label for="dob" data-error="Invalid Date of Birth">Date of Birth</label> 
       </div> 

我试着在文本字段设置值设置在materializecss日期,它的工作如何使用jQuery

$('#email').attr('value', result.result.Email); 
$('#email').next().addClass('active'); 

我将如何设置日期?

我想这

$('#dob').attr('value', result.result.DoB); 
$('#dob').next().addClass('active'); 

它没有工作。然后我试了

$('#dob').val(result.result.DoB); 
$('#dob').next().addClass('active'); 

它是设置日期,但它的重叠标签。

enter image description here

另外如何将它设置为不同的格式,如1995年6月17日

回答

0

我通常不使用该类型的输入。你确定它会返回一个可显示的值吗?尝试添加toString方法。

$('#dob').val(result.result.DoB.toString()); 
$('#dob').next().addClass('active'); 
+0

我总是像这样使用'result.result.DoB'只有100次在我的项目中。这是工作。像这样使用有什么问题吗? –

+0

我仍然得到相同的输出。 –

+0

尝试console.log result.result.DoB的值并让我看看结果。 –

0

工作演示 - https://jsfiddle.net/dxbfhdzg/2/

对于重叠问题,

我已在<div>标签之前保留<label>标签。

这样,

<label for="email" data-error="Invalid Email ID">Email ID</label> 
<div class="input-field col s4" style="max-height: 58px;"> 
    <input id="email" name="email" type="email" maxlength="30" class="validate" required length='30'> 
</div> 
<label for="dob" data-error="Invalid Date of Birth">Date of Birth</label> 
<div class="input-field col s4" style="max-height: 58px;"> 
    <input type="date" class="datepicker"> 
</div> 

并且用于格式化像1995年6月17日,日期,

您需要在初始化您的日期选择器使用格式 attrubte,并且可以进一步利用。设置方法来设置您的result.result。DOB值这样的事情,

var $input = $('.datepicker').pickadate({ 
    selectMonths: true, // Creates a dropdown to control month 
    selectYears: 15, // Creates a dropdown of 15 years to control year 
    format: 'mmmm dd, yyyy' }); 

var picker = $input.pickadate('picker'); 
picker.set('select', new Date('17 June, 1995')); 
+0

但占位符将替换标签。输入值后我不能看到它 –

+0

好吧,明白了。我已经更新了我上面的答案和JSFiddle链接。你可以现在检查一下吗? –

0

下面的代码看起来像

<div class="input-field col s4" style="max-height: 58px;"> 
        <input id="studentDOB" name="studentDOB" type="date" class="datepicker" required> 
        <label for="studentDOB" data-error="Invalid Date of Birth">Date of Birth</label> 
       </div> 

但是,当我在开发者控制台检查,我发现这个

enter image description here

所以它得到了一个新的div标签太多,active被添加到该元素,但我们想要active标签到标签

因此使用下面的行

$('#studentDOB').parent().children('label').addClass('active');

对于格式,你可以用获取JavaScript的方法

var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; 
d = new Date(result.result.DoB); 
date = d.getDate() + " " + monthNames[d.getMonth()] + ", " + d.getFullYear(); 
$('#studentDOB').val(date);