//A bug where hitting enter after entering text in a EditText box would clear the box
//the code below prevents this
//disable enter key press
EditText txtEdit = (EditText)view.findViewById(R.id.text_input);
txtEdit.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
InputMethodManager in = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(v.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
return true;
}
return false;
}
});
Monday, 10 December 2012
Wednesday, 31 October 2012
Disabling dates in JQueryUI Datepicker - hooked up to an MVC 3 controller action to provide dates.
//method in controller to return list of dates.
public ActionResult GetDisabledDates(string id) {
//get list of dates separated by comma ...
return Json(new {disabledDatesArray = result }, JsonRequestBehavior.AllowGet);
}
$(document).ready(function () {
//Call GetDisabledDates in the controller, passing id
$.getJSON("GetDisabledDates", { id: "identifier" },
function(data) {
//write date values to hidden field for retrieval later.
//and to ensure we only have to call server side method once. $('#hiddenDates').val(data.disabledDatesArray); });
function IsDateAvailable(date) {
//we have to pad the date, to ensure we can compare with the dates we retrieve from serverside.
var dmy = padDate(date.getDate()) + "/" + padDate(date.getMonth()+1) + "/" + date.getFullYear();
//remove dates in array from datepicker. if (IsDateInUnavailableList(dmy)) {
//date exists in list of those not allowed. return [false,"","Unavailable"]; } else { return [true,"","Available"]; } }
//pad out dates to allow comparison, 1/1/2012 will become 01/01/2012
function padDate(i) { return (i < 10) ? "0" + i : "" + i; }
//define datepicker
$("#datepicker").datepicker({ dateFormat: 'dd/mm/yy', minDate: 0, beforeShowDay: IsDateAvailable });
EnableOrDisableSaveButton();
$("#datepicker").change(function () {
EnableOrDisableSaveButton();
});
function IsDateInUnavailableList(date) {
var dateValues = $("#hiddenDates").val();
//convert back into an array.
var dateArray = dateValues.split(",");
//check date against dates in array
if ($.inArray(date, dateArray) < 0) { return false; } else { return true; } }
// Function to enable or Disable the Save Button
function EnableOrDisableSaveButton() {
var date = $('#datepicker').val();
// Now enable the button if the above two values or not empty
if (date != "") {
//prevent save button click if date selected in list of disallowed dates.
if (IsDateInUnavailableList(date)) { $("#Save").attr("disabled", true); }
else {
$("#Save").attr("disabled", false); } }
else {
$("#Save").attr("disabled", true); } }
//hidden field to store date values.
<input id="hiddenDates" name="hiddenDates" style="display: none;" />
//datepicker
@Html.TextBoxFor(m => m.Date, new { id = "datepicker", @maxlength = 10, style = "width:65px" })
<input id="Save" title="Click here to save" type="submit" value="Save" />
public ActionResult GetDisabledDates(string id) {
//get list of dates separated by comma ...
return Json(new {disabledDatesArray = result }, JsonRequestBehavior.AllowGet);
}
$(document).ready(function () {
//Call GetDisabledDates in the controller, passing id
$.getJSON("GetDisabledDates", { id: "identifier" },
function(data) {
//write date values to hidden field for retrieval later.
//and to ensure we only have to call server side method once. $('#hiddenDates').val(data.disabledDatesArray); });
function IsDateAvailable(date) {
//we have to pad the date, to ensure we can compare with the dates we retrieve from serverside.
var dmy = padDate(date.getDate()) + "/" + padDate(date.getMonth()+1) + "/" + date.getFullYear();
//remove dates in array from datepicker. if (IsDateInUnavailableList(dmy)) {
//date exists in list of those not allowed. return [false,"","Unavailable"]; } else { return [true,"","Available"]; } }
//pad out dates to allow comparison, 1/1/2012 will become 01/01/2012
function padDate(i) { return (i < 10) ? "0" + i : "" + i; }
//define datepicker
$("#datepicker").datepicker({ dateFormat: 'dd/mm/yy', minDate: 0, beforeShowDay: IsDateAvailable });
EnableOrDisableSaveButton();
$("#datepicker").change(function () {
EnableOrDisableSaveButton();
});
function IsDateInUnavailableList(date) {
var dateValues = $("#hiddenDates").val();
//convert back into an array.
var dateArray = dateValues.split(",");
//check date against dates in array
if ($.inArray(date, dateArray) < 0) { return false; } else { return true; } }
// Function to enable or Disable the Save Button
function EnableOrDisableSaveButton() {
var date = $('#datepicker').val();
// Now enable the button if the above two values or not empty
if (date != "") {
//prevent save button click if date selected in list of disallowed dates.
if (IsDateInUnavailableList(date)) { $("#Save").attr("disabled", true); }
else {
$("#Save").attr("disabled", false); } }
else {
$("#Save").attr("disabled", true); } }
//hidden field to store date values.
<input id="hiddenDates" name="hiddenDates" style="display: none;" />
//datepicker
@Html.TextBoxFor(m => m.Date, new { id = "datepicker", @maxlength = 10, style = "width:65px" })
<input id="Save" title="Click here to save" type="submit" value="Save" />
Subscribe to:
Posts (Atom)