jquery javascript concatenate / variable问题

时间:2013-10-06 22:20:24

标签: javascript jquery

我在表单标签中有html表。 当我点击表格内的一个单元格时,jquery给了我单元格的“id”attr 我将“id”attr保存到一个名为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

1 个答案:

答案 0 :(得分:0)

新答案

这将始终提示未定义...

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-&lt; - - -

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/