2013-03-25 102 views
4

我使用的ComdoBox,DatePicker等一些KendoUI元素一切正常,但有一个主要问题,这些元素实际上允许手动输入。禁用KendoUI元素的手动输入

例如,在组合框中,我可以点击它来激活一个文本框,这是非常危险的,并破坏了使用<select>类型列表元素的目的,日期选择器也是如此。

因此,您可以指导我如何禁用这些手动输入,并且仅限用户从可用选项中进行选择。

<input id="date" value="@DateTime.Now.Date"/> 
<select name="need" id="need"> 
          <option value="1">High</option> 
          <option value="2">Normal</option> 
          <option value="3">Low</option> 
         </select> 
<script type="text/javascript"> 

    $("#date").kendoDatePicker(); 
    $("#need").kendoComboBox(); 
</script> 

请帮忙。

回答

5

如果日期选择器被禁用,它不会被提交到服务器。代之以更好地使用readonly属性。

+0

如果你绑定了一个模型并使用ajax来保存数据,那么禁用应该是正确的?这只有在我们有回传的情况下才会失败? – Whizkid747 2013-03-26 14:57:16

+0

我不认为它会起作用。试试看看你自己。 – 2013-03-26 16:12:36

+0

'readonly'完美。 – Maven 2013-03-27 05:43:44

2

如果您不希望用户键入文本,请使用DropDownList而不是组合框。对于日期选择器,您可以使用jQuery轻松地禁用要转换为日期选择器的输入元素。

See this fiddle

$(document).ready(function() { 
     // create DatePicker from input HTML element 
      var datepicker =  $("#datepicker").kendoDatePicker(); 
      $("#datepicker").prop('disabled', true); 
      }); 
+1

Thankyou,DropDownList是我所需要的。然而禁用datePicker实际上并没有将其发布到服务器上,只需要“只读”。 – Maven 2013-03-27 05:43:09

2

否认手动输入你需要的Telerik的模板内访问输入文本框:

var input = $(#"combobox").data("kendoComboBox").input; 
input.attr("readonly", "readonly"); 
0

dropdownbox()这样工作,而不是组合框()如果情况是不可编辑的组合框。