Javascript ReactJS中Safari的JQuery UI日期选择器回退
我正在尝试在我的ReactJS.NET应用程序中使用一些回退逻辑。到目前为止,我已经能够在我的Razor视图中使用以下代码,这对我来说非常有用:Javascript ReactJS中Safari的JQuery UI日期选择器回退,javascript,jquery,reactjs,reactjs.net,Javascript,Jquery,Reactjs,Reactjs.net,我正在尝试在我的ReactJS.NET应用程序中使用一些回退逻辑。到目前为止,我已经能够在我的Razor视图中使用以下代码,这对我来说非常有用: //create logic to fallback if there is no datepicker HTML5 (Safari) if ($('[type="date"]').prop('type') !== 'date') { //for reloading/disp
//create logic to fallback if there is no datepicker HTML5 (Safari)
if ($('[type="date"]').prop('type') !== 'date') {
//for reloading/displaying the ISO format back into input again
var val = $('[type="date"]').each(function () {
192
var val = $(this).val();
if (val !== undefined && val.indexOf('-') > 0) {
var arr = val.split('-');
$(this).val(arr[2] + '/' + arr[1] + '/' + arr[0]);
}
});
$('input[type=date]').attr('readonly','readonly');
//add in the datepicker
$('input[type=date]').datepicker({
// Consistent format with the HTML5 picker
dateFormat: 'yy-mm-dd',
altFormat: 'dd/mm/yy'
});
//stops the invalid date when validated in safari
jQuery.validator.methods["date"] = function (value, element) {
var shortDateFormat = "dd/mm/yy";
var res = true;
try {
$.datepicker.parseDate(shortDateFormat, value);
} catch (error) {
res = false;
}
return res;
}
}
然而,我的问题是——在我与React一起使用的JSX页面中是否可以实现类似的逻辑?显然,人们可能认为最好的办法是在讨论中的JSX页面的componentDidMount函数中加载这样的代码,但我遇到了诸如“$”选择器无法识别的问题,即使我将jQuery脚本引用移到此处注入JSX的部分上方:
@Scripts.Render("~/bundles/jquery")
@Html.React("Queue", new
{
initialData = openData,
closedData = closedData,
initialSelect = initialSelData,
initialCloseSelect = initialSelClosedData,
immUserOpen = initialUserSelData,
immUserClose = initialUserSelClosedData,
userData = user,
userDB = usersDB,
shiftDB = shifts,
templates = templatesDB,
shiftsUrl = Url.Action("StaffShifts"),
templatesUrl = Url.Action("TicketTemplates"),
refreshCalFlgUrl = Url.Action("RefreshCalendarFlag"),
getId = Url.Action("generateGuid"),
getUrl = Url.Action("Tickets"),
navUrl = Url.Action("Ticket"),
submitUrl = Url.Action("AddTicket"),
submitShiftsUrl = Url.Action("UpdateStaffShifts"),
submitTemplatesUrl = Url.Action("AddTicketTemplate"),
serverMsg = Session["Message"],
srvMsgRst = Url.Action("ServerMsgRead", "Home"),
calendarEmailVerify = Url.Action("CalendarAccessEmailCheck"),
calendarAccessUrl = Url.Action("CalendarAccessRequest"),
//submitUrl = Url.Action("AddComment"),
pollInterval = 1000,
gCalSync = gCalSync,
gCalPolling = gCalPolling,
gCalInterval = gCalInterval,
appChange = Url.Action("setAppSetting"),
debugLogging = debugLogging,
maxART = maxARTNumber,
gCalFrameUrl = gCalFrameSrc
})
有没有一种方法类似于本文开头提到的方法?当然,也许我的想法是错误的,但我正试图找到最好的方法,在包含“日期”输入字段的React组件上节省大量重写
任何想法都很感激 神圣的狩猎…看起来情况越来越糟了。欢迎新的IE!(对不起,这里没有反应知识,只是在2020年跌跌撞撞地找到了一个简单的safari后备日期选择器!)告诉我吧,啊,这真让人头疼!我决定暂时放弃在我的应用程序中对Safari和其他浏览器的JQuery或其他日期选择器的直接支持。我感觉自己正在接近一个可以完成这项工作的临时组件,但对于如何实现与状态的绑定,我太犹豫了。我或多或少地使用了上面的jquery代码的简化版本;-)=太棒了!:)神圣的狩猎…看起来情况越来越糟了。欢迎新的IE!(对不起,这里没有反应知识,只是在2020年跌跌撞撞地找到了一个简单的safari后备日期选择器!)告诉我吧,啊,这真让人头疼!我决定暂时放弃在我的应用程序中对Safari和其他浏览器的JQuery或其他日期选择器的直接支持。我感觉自己正在接近一个可以完成这项工作的临时组件,但对于如何实现与状态的绑定,我太犹豫了。我或多或少地使用了上面的jquery代码的简化版本;-)=太棒了!:)