HTML选择标记和jQuery显示和隐藏

时间:2012-08-06 01:53:46

标签: javascript jquery html

更新: 看看人们的建议,我意识到我应该没有AJAX。我决定更改加载函数,现在将jquery代码放在其中。但是,它仍然不起作用,因为没有元素显示为可见。这是新代码的样子。

<style>

.input_1 {display: none;}

.input_2 {display: none;}

.input_3 {display: none;}

</style>

<script type="text/javascript">

var numbers = $('#select_number').val();

function load(numbers) {    
if (numbers == 1) 
{$("input").hide();$(".input_1").show();} else 
if (numbers == 2) 
{$("input").hide();$(".input_1").show();$(".input_2").show();} else
if (numbers == 3) 
{$("input").hide();$(".input_1").show();$(".input_2").show();$(".input_3").show();}}

</script>

这就是选择标签现在的样子

<form id="form" action="" method="post">

<select id="select_number" onclick="load( numbers );" >

<option>1</option>
<option>2</option>
<option>3</option>

</select>

<input type="text" class="input_1"/>

<input type="text" class="input_2"/>

<input type="text" class="input_3"/>

</form>

4 个答案:

答案 0 :(得分:0)

<select id="select_number" onclick="load('ajax_file.php', number_of_places );">

单击元素时“number_of_places”的值是多少?根据你的代码,它设置一次,永远不会改变。

一种解决方案是在发送之前获取值:

function load(thefile) {    
    var number = $('#select_number').val();
    $.get(thefile, {number : number});
}

或者在函数调用中获取值

<select id="select_number" onclick="load('ajax_file.php', $('#select_number').val());">

此外,您没有对结果执行任何操作。也许你想要那样?但如果没有,你需要添加这样的东西:

$.get(thefile, {number : number}, function (data){
        alert('The results are: ' + data);
        // do something with the results
    }
);

我希望有所帮助!

答案 1 :(得分:0)

我会使用jQuery来完成这样的任务。 jQuery使得它非常容易使用AJAX调用。

var myVar = $.get( "ajax_file.php",
                   "/*data to be sent to php file (optional)*/",
                   function(data) { /*whatever you want you do (or simply leave it empty if your php does what you need)*/ },
                  "text" /*data Type*/
                 );

答案 2 :(得分:0)

Jquery无法在服务器上远程执行,因此Ajax调用中的jquery将不执行任何操作。这是jquery本质的基础,它不是服务器端语言。

 function load(thefile) {    
    var number_of_places = $('#select_number').val();
    $.get(thefile, {number : number_of_places}, function(numbers){
        if (numbers = 1) 
           {$("#input_1").show();} else 
        if (numbers = 2) 
           {$("#input_1").show();$("#input_2").show();} else
        if (numbers = 3) 
           {$("#input_1").show();$("#input_2").show();$("#input_3").show();}
    });
  )};

php文件:

  <?php

  if (isset($_GET['number']) === true && empty($_GET['number']) === false) {
       print $_GET['number'];
  }

  ?>

答案 3 :(得分:0)

找到解决方案。在onclick属性的load函数中添加$('#select_number')。val()并且它可以工作。感谢大家的帮助。