#jquery #asp.net
#jquery #asp.net
Вопрос:
У меня есть моя функция следующим образом
<script type="text/javascript">
$(function() {
$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();
});
function showDate(date) {
//alert('The date chosen is ' date);
}
</script>
Мне нужно, чтобы это вызывалось при нажатии на Href
тег
<a onclick="" href="#">
Metaforce as per you said i tried this
<script type="text/javascript">
$(function click() {
$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();
});
function showDate(date) {
//alert('The date chosen is ' date);
}
</script>
<a onclick="return click();" href="#">
<img alt="cal" src="calendar.gif" style="vertical-align: text-bottom;" border="0" /></a>
В onclick
я должен вызвать это, как я могу помочь, пожалуйста
Patrick Kaufmann and Phillip Kovalev
согласно вашим словам, я пишу следующее
<script type="text/javascript">
function showDate(date) {
//alert('The date chosen is ' date);
}
$(function() {
$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();
// assign anonimous function as event handler and call showdate from it
$('#clickOnIt').click( function() {
showDate( $(this).val() );
} );
});
</script>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<a href="#" id="clickOnIt">click me</a>
Но я не получаю желаемый календарь
Комментарии:
1. Просто для ясности, когда вы описываете свою функцию в первом блоке, вы фактически демонстрируете два вызова функции, один из которых — анонимная функция, вызываемая в document ready, другой — именованная функция, которая не вызывается. Это именованная функция, которую вам нужно вызвать в onclick или анонимная?
2. @Dorababu, пожалуйста, скажите, используете ли вы jQuery UI или какой-либо другой фреймворк? Если это jQuery UI, то используйте
.datepicker();
вместо.datepick();
для настройки календаря, как описано в документах , сначала. После этого, если вы хотите отобразить календарь при нажатии по ссылке, используйте следующий код для ссылки:<a onclick="$('#ctl00_ContentPlaceHolder1_TextBox2').datepicker('show');">
как описано в том же документе .3. @Phillip : Это тот, который я использую из [ keith-wood.name/datepick.html ]
4. В этом случае вы можете использовать
<a onclick="$('#ctl00_ContentPlaceHolder1_TextBox2').datepick('show');">
, как описано в документации по вашей ссылке. Присваивание$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();
в этом случае правильное. И StackOverflow не место, там другие будут читать документацию вместо вас.5. Филипп Ковалев Большое спасибо, если вы обновите свой ответ, я отмечу как ответ
Ответ №1:
если <a/>
имеет уникальный атрибут id
or class
, вы можете назначить событие в вашем javascript:
<script type="text/javascript">
$(function() {
var dateField = $('#ctl00_ContentPlaceHolder1_TextBox2');
dateField.datepick();
// assign anonimous function as event handler and call showdate from it
$('#your_a_selector').click( function() {
dateField.datepick('show');
} );
});
</script>
Комментарии:
1. Как я могу вызвать функцию в Href
2. Почему вам нужно размещать вызов в атрибуте @href? Назначение функции
click
событию приводит к тому же результату, что и вы хотите.3.
<a href="javascript:showDate( $(this).val() );">
то же самое, но регистр в моем ответе правильный, потому чтоjavascript:
протокол устарел.4. Ммм … ваш вопрос был «Как вызвать функцию Jquery в HREF» . Если вы используете
datepicker
компонент по умолчанию из jquery-ui, правильное назначение будет$('#ctl00_ContentPlaceHolder1_TextBox2').datepicker();
и$('#ctl00_ContentPlaceHolder1_TextBox2').datepicker( "show" );
для события linkclick
. Пожалуйста, прочтите документацию по компоненту для получения более подробной информации и задайте вопрос по теме проблемы. Насколько я понимаю, ваша проблема не в назначении обработчика событий для ссылки.
Ответ №2:
Лучше используйте обработчик щелчков jquery, чтобы отделить код javascript от разметки.
Пример:
<a href="#" id="clickOnIt">click me</a>
Затем в файле javascript:
$('#clickOnIt').click(function() {
//do the stuff for the click here
});
Ответ №3:
попробуйте вот так:
function clickDatePick() {
$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();
}
и добавьте это в onclick: <a onclick="clickDatePick();" href="#">
или
<a onclick="$('#ctl00_ContentPlaceHolder1_TextBox2').datepick();" href="#">
Комментарии:
1. встроенные события должны исчезнуть. Кроме того, вы действительно хотите
return false;
, чтобы в этом обработчике событий к URL-адресу не добавлялся хэш, который выглядит раздражающим и переходит в начало страницы.2. @Dorababu что сообщает вам консоль ошибок? как говорит @ThiefMaster, добавьте возвращаемое значение false в пользовательскую функцию «clickDatePick()», а затем также выполните: «return clickDatePick();» в вашей href…
3. можете ли вы увидеть мои правки в вопросе в соответствии с вашим ответом, который я изменил, но у меня это не работает
4. вы определяете функцию «click» в неправильной области видимости, не заключайте ее ни в какие скобки или любую другую функцию… если вы понимаете, что я имею в виду под этим