2014-03-30 85 views
0

我有一个选择字段。当用户从字段中选择选项时,我想根据用户选择显示输出。例如,如果用户选择2,那么我想两次显示'hello world'。这是我迄今为止所做的。jquery函数不工作?

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 

<p>Select Option:<select id="noAct"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option 
    </select> 


<p id="tables"></p> 

<script> 
    function displayTable() 
    { 
     var value = $("#noAct").val(); 

     //for loop to display the no of tables required 
     for (var i=0; i<value; i++) 
     { 
      //display the table 
      $("#tables").html("<b>Hello World</b>"); 

     } 
    } 

    $("select").change(displayTable); 
    displayTable(); 
</script> 

我没有输出或任何。有人能帮我吗?

+0

如何把'change'和'displayTable()'放在一个DOM准备好的处理程序中? – karthikr

+0

语法错误,缺少'noAct' ID上的引号,未封闭的选项标签等 – adeneo

+0

我是jquery的新手,所以如果你可以驴评我的解决方案将会很棒 – Crestamr

回答

2

修正语法错误,并在循环使用append(),不html()因为它覆盖在每次迭代

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 

<p>Select Option:</p> 
<select id="noAct"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 


<p id="tables"></p> 

<script> 
    function displayTable() { 
     var value = $("#noAct").val(); 

     $("#tables").empty(); 

     for (var i=0; i < value; i++) { 
      $("#tables").append("<b>Hello World</b><br />"); 
     } 
    } 

    $("select").change(displayTable); 
    displayTable(); 
</script> 

FIDDLE

+0

+1比我快: ) –

0

尝试像下面,

$(document).ready(function() { 

    $("select").change(displayTable); 

}); 
+0

仍然无法使用! – Crestamr

+0

$(document).ready('是不必要的,你调用displayTable()并将返回值('undefined')传递给'change'而不是函数。 – Paulpro

0

尝试内容这个:

<script> 

$(document).ready(function(){ 
    $("#noAct").on('change', function(){ 
     var value = $(this).val(); 

     //for loop to display the no of tables required 
     $("#tables").html(); 
     for (var i=0; i<value; i++) 
     { 
      //display the table 
      $("#tables").append("<b>Hello World</b><br />"); 

     } 
    }); 
}); 
</script>