2017-02-03 4 views
0

Я хотел бы отправить значение щелкнутого элемента массива в таблице в элемент ввода заголовка.Как получить значение щелкнутого элемента ввода из массива в jquery

В нижнем регистре я всегда получал значение первой линии. Как получить точное значение строки нажатой кнопки?

Вот мой код, что я пытаюсь сделать:

<?php 

if(isset($_SESSION['wo_arr'])) { 
    if(is_array($_SESSION['wo_arr'])) { 
     foreach($_SESSION['wo_arr'] as $key => $value) { 
      foreach($value as $k => $v) { 
       $wo_arr[$key][$k] = $v ; 
      } 
     } 
    } 
    $num = count($wo_arr['wo_no']); 
} else { 
    $num = 5 ; 
} 

?> 

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
<script> 

    function selectWork() { 

     $(document).ready(function() { 

      var data = $(this).find('.wono_arr').val() ;    
      $('#wo_no').val(data); 

     });  
    } 

</script> 
</head> 
<body> 

    <FORM> 

     <p> 
      work order # <INPUT size=10 TYPE="text" id=wo_no NAME="wo_no"> 
     </p> 

     <table> 

     <?php 
      for($i = 0 ; $i < $num ; $i++) { 
     ?> 

      <TR> 
       <TD><INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]" 
        value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>" 
        onclick="selectWork()"> 
       </TD> 
      </TR> 

     <?php 
      } 
     ?> 
     </TABLE> 

    </FORM> 

</body> 

</html> 

Спасибо.

+0

use, это в функции и по умолчанию методу, переданному событию, этим объектом может быть найден event.current .. –

+0

'ng-click =" functionName (this) "' '$ scope.functionName = function (отправитель) {alert (sender.value) ' – awiebe

+0

спасибо, Álvaro Touzón. я решил свою проблему. – sky

ответ

0

Помещенный this на вызов функции:

HTML

<INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]" value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>" onclick="selectWork(this)"> 

И использовать его в:

JS

function selectWork(e) {   
    var data = $(e).val();    
    $('#wo_no').val(data); 
} 

рекомендовал ttach нажмите обработчик ввода элемента вместо того, чтобы использовать встроенный Javascript так:

HTML

<INPUT TYPE="TEXT" class="wono_arr" NAME="wo_arr[wo_no][]" value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>"> 

JS

$('table').on('click','.wono_arr', function() { 
    var data = $(this).val();    
    $('#wo_no').val(data); 
}); 
+0

спасибо Норлихазмай Газали, ваш ответ тоже замечательный. моя 5-часовая головная боль. haha – sky

+0

Рад это услышать и приветствую друга. :) –

0

Определить свой каждый элемент с общим именем класса, и для этого класс определяет функцию щелчка следующим образом.

//JS 
<script> 
$(document).ready(function(){ 
    $(".wono_arr").click(function(){ 
     alert("Value"+$(this).val()); 
     alert($(this).attr('id')+"clicked"); 
    }); 
}); 
</script> 
//In your html 
<table> 
<?php 
    for($i = 0 ; $i < $num ; $i++) { 
?> 
    <tr> 
     <td><input type="text" class="wono_arr" id="<?php echo $wo_arr['wo_no'][$i]; ?>" name="wo_arr[wo_no][]" 
       value="<?php if(isset($wo_arr['wo_no'][$i])) echo $wo_arr['wo_no'][$i]; ?>" 
      /> 
     </td> 
    </tr> 

<?php 
    } 
?> 
</table> 

Для множественного HTML элемента, можно определить такое же имя класса, а затем, если вы определяете метод с использованием JQuery и если вы используете этот класс, то метод будет работать для всех HTML-элемента. Когда вы вызываете метод, получите значение текущего элемента с нажатием, используя this ключевое слово.

+0

спасибо за ваш комментарий. – sky