Невозможно загрузить календарь Javascript в Href с помощью функции Jquery

#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" ); для события link click . Пожалуйста, прочтите документацию по компоненту для получения более подробной информации и задайте вопрос по теме проблемы. Насколько я понимаю, ваша проблема не в назначении обработчика событий для ссылки.

Ответ №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» в неправильной области видимости, не заключайте ее ни в какие скобки или любую другую функцию… если вы понимаете, что я имею в виду под этим