Jquery для получения значения внутри функции onclick - PullRequest
0 голосов
/ 23 июня 2019

Этот маленький скрипт для получения значений из select

<script>
jQuery(document).ready(function() 
{
var clv1=jQuery("#tr_val").val();
});
</script>

При нажатии на этот div и выполнении функции open_win мне нужно отправить значение select внутри функции jQuery ("# ​​tr_val"). Val ();

<div onclick="open_win(""+clv1,'test');">Test</div>

Проблема в том, что я не знаю, как правильно написать синтаксис для вставляемого значения "clv1" внутри функции open_win при нажатии на div Тест

У меня есть только эта проблема, я пробую разные комбинации, но я не работаю никогда

Спасибо заранее

Ответы [ 5 ]

0 голосов
/ 23 июня 2019

, если вы хотите получить значение элемента с идентификатором tr_val, когда вы нажимаете на div, попробуйте что-то вроде этого.поместите событие click в javascript, а также.Также, если вы хотите запустить функцию, как будто вы пытаетесь сделать ее встроенной, вам нужно определить эту функцию, но вы также можете использовать ее в файле тэгов / js script

function open_win(someArg) {
  // do something
}

<div class="test-class">Test</div>

<script>

$(document).ready(function() {
  var clv1 = $("#tr_val").val();

  // anonymous function
  $('.test-class').on('click', function(e) {
    console.log(clv1);
  })

  // named function with a parameter
  $('.test-class').on('click', function(e) {
    open_win(clv1);
  })

  // if you wanted named function with parameter to look a bit cleaner
  // using es6 arrow function
  $('.test-class').on('click', (e) => open_win(clv1))

  // name function no param (event is the first argument passed in by default but you can't pass params in like this)
 $('.test-class').on('click', open_win)
});
</script>
0 голосов
/ 23 июня 2019

Вы можете использовать ES6 способами

<h1>Hello World!</h1>
<input id="tr_val" value="element value" hidden>

<div class="open-div" data-text='test'>Test</div>
(function ($) {

  $(function () {
    let tr_val = $('#tr_val').val();

    $('.open-div').on('click', function (e) {
      let $this = $(this);
      let text = $this.data("text");

      console.log(tr_val);
      console.log(text);
    });
  });

})(jQuery);

https://codepen.io/nsivanoly/pen/OemWNM

0 голосов
/ 23 июня 2019

Я думаю, это то, что вы просите, я немного реорганизовал вещи. Теперь есть пользовательская функция, которую вы вызываете из встроенного onclick из div. Вместо того, чтобы пытаться получить значение в готовом документе, вы можете сделать это одним щелчком мыши, я думаю, это упрощает процесс.

Дайте мне знать, если это не то, на что вы надеялись.


Демо

// Add a function which you call from the inline onclick
function open_win() {

  // Gather the value of the input
  console.log( $("#tr_val").val() );

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input id="tr_val" value="one">

<div onclick="open_win()">Test</div>
0 голосов
/ 23 июня 2019

Вы можете попробовать что-то вроде этого, сохранить значение в атрибуте div data и затем получить доступ к нему внутри функции.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script>
function open_win(){
  $(this).data("val", $("#tr_val").val());
  console.log($(this).data('val'));
}
</script>
<div onclick="open_win()">Test</div>
<select id="tr_val">
  <option value="value1">Value 1</option>
  <option value="value2">Value 2</option>
  <option value="value3">Value 3</option>
</select>

Примечание: Ваша функция open_win должна быть определена перед вызовом.

0 голосов
/ 23 июня 2019

Вы можете добавить глобальную переменную, и при изменении вашего выбора вы можете изменить эту переменную.

В то время как в элементе div вы можете добавить id и записать обработчик события в тег скрипта (здесь вы можете получить доступ к этомуглобальная переменная).

Примечание: Однако глобальная переменная не является правильным способом, но вы можете сделать это для изучения / тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...