0

我在表单标签中有 html 表。当我点击表格内的一个单元格时,jquery 给了我单元格的“id”属性。
我将“id”属性保存到一个名为 id 的变量中。当我提醒“id”时,id 显示:

    alert(id); //outputs 39

但是在下一行我有

      term1 = $form.find( "input[name='firstoneinput_" + id +"']").val();

 alert(term1); //outputs undefinined // it should output input 
                                       value with name attribute 
                                      of "firstoneinput_39"

为什么警报输出未定义。顺便说一句,我也将真实值放入文本字​​段。HTML

                <!doctype html>
                         <html lang="en">
                         <head>
                            <meta charset="utf-8">
                            <title>jQuery.post demo</title>
                            <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
                         </head>
                         <body>
                            <form action="comments.php" id="nameForm">
                               <table border='1'>
                              <tr>
               <td><input type="text" class="hidden" name="firstoneinput_1_25" id="25" placeholder="firstoneinput_1_25"> </td>
    <td>  <input type="text" class="hidden" name="firsttwoinput_1_26" id="26" placeholder="firsttwoinput_1_26"></td>

</tr>
<tr>
    <td>  <input type="text" class="hidden" name="firstoneinput_2_27" id="27" placeholder="firstoneinput_2_27"> </td>
    <td>  <input type="text" class="hidden" name="firsttwoinput_2_28" id="28" placeholder="firsttwoinput_2_28"></td>

</tr>
<tr>
    <td>  <input type="text" class="hidden" name="firstoneinput_3_29" id="29" placeholder="firstoneinput_3_29"> </td>
    <td>  <input type="text" class="hidden" name="firsttwoinput_3_30" id="30" placeholder="firsttwoinput_3_30"></td>

</tr>
               <tr>
    <td>  <input type="text" class="hidden" name="firstoneinput_4_31" id="31" placeholder="firstoneinput_4_31"> </td>
    <td>  <input type="text" class="hidden" name="firsttwoinput_4_32" id="32" placeholder="firsttwoinput_4_32"></td>

</tr>



            </table>
           <td> <input type="submit" value="search"></td>

            </form>
           <!-- the result of the search will be rendered inside this div -->
                <div id="result"></div>

JAVASCRIPT

               <script>


               $(document).ready(function(){

                var id = 0;

               $('table tr td').click(function(){


              id = $(this).children("input[class='hidden']").attr("id");
                 return id;

                    });



           $( "#nameForm" ).submit(function( event ) {

           // Stop form from submitting normally
              event.preventDefault();

       // Get some values from elements on the page:
               var $form = $( this );




            term1 = $form.find( "input[name='firstoneinput_" + id +"']").val();

                 alert(term1); <---alerts undefined even thou I put in form values
                   alert(id); <----alerts ok the id
4

1 回答 1

0

新答案

这将始终提醒 undefined ...

alert(term1); // < ---alerts undefined even thou I put in form values

...因为您正在寻找firstoneinput_XX ...

$form.find( "input[name='firstoneinput_" + id +"']").val();

...但是您的实际输入元素具有名称约定firstoneinput_X_XX

<input ... name="firsttwoinput_1_26" ... />

- - - 上一个答案 - - 8-< - - -

html:

<form>
  <table>
    <tr>
        <td id='39'>Klick</td>
    </tr>
  </table>    
  <input name="firstoneinput_39" value="the_uber_value"/>
</form>

脚本:

$(document).ready(function() {
  $('td').click(function() {
    alert($('input[name="firstoneinput_' + this.id + '"]').val());
  });
});

魔术:http: //jsfiddle.net/McNull/4BDmh/

于 2013-10-06T22:33:24.193 回答