Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js检查的澄清_Javascript_Jquery_Html - Fatal编程技术网

Javascript js检查的澄清

Javascript js检查的澄清,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试用JS(这不是我的强项)来解决一些问题。我设置了一把小提琴,可以在这里看到: 以下是我正在使用的代码: function find_select(){ if (document.getElementById("nsp").selected == true) { document.getElementById('nsp_form').style.display = 'block'; document.getElementById('feedback_form').styl

我正在尝试用JS(这不是我的强项)来解决一些问题。我设置了一把小提琴,可以在这里看到:

以下是我正在使用的代码:

function find_select(){
if (document.getElementById("nsp").selected == true)
{
    document.getElementById('nsp_form').style.display = 'block';
    document.getElementById('feedback_form').style.display = 'none';
}
else if (document.getElementById("feedback").selected == true)
{
    document.getElementById('nsp_form').style.display = 'none';
    document.getElementById('feedback_form').style.display = 'block';
}
else if (document.getElementById("pre_alerts_yes").selected == true)
{
    document.getElementById('nsp_form').style.display = 'block';
    document.getElementById('pre_alerts_yes').style.display = 'block';
    document.getElementById('feedback_form').style.display = 'none';
}   

else{
    document.getElementById('nsp_form').style.display = 'none';
    document.getElementById('feedback_form').style.display = 'none';
}
}
我希望有人选择“发送预警报”选项,然后再打开一个下拉框,其中显示发送预警报选项的类型。但我没能让它这么做,特别是在:

if (document.getElementById("pre_alerts_yes").selected == true)
因此也需要检查nsp框是否打开,因为pre_alerts_yes仅显示nsp框是否打开并选择为true。很抱歉写了这么长的文章,但需要理解它


基本上是一种链式选择方法,可能出现3级下降。也许一双新的眼睛可以告诉我我做错了什么,因为最后的“pre_alerts_yes”并没有扩展最终框。

如果你想打开
pre_alerts_yes
你必须先显示
nsp_表单
,因为
nsp_表单div下的
pre_alerts_yes
操作系统是
显示:无首先使其
显示:块

只需尝试命名不同的ID,并使用jquery使用类似的名称即可

    <label for="input_title">Phone Type:</label>
<select name="phone_type" id="select_form" class="input-block-level" >
    <option id="blank" value="blank"></option>
    <option id="blank" value="house">House Phone</option>
    <option id="nsp" value="cellphone">Normal Cell (Non Smart Phone)</option>
    <option id="feedback" value="smartphone">SmartPhone</option>
</select>
<div id="nsp_form" style="display: none;">
    <label for="input_title">Send Pre-Alerts:</label>
    <select name="pre_alerts" id="pre_alerts_yes_open" class="input-block-level" >
        <option id="blank" selected="selected"></option>
        <option value="pre_alerts_yes">Yes</option>
        <option value="normal_cell">No</option>
    </select>

    <div id="pre_alerts_yes_form" style="display: none;">
        <label for="input_title">Pre-Alerts Type:</label>
        <select name="pre_alerts" id="pre_alerts_from" class="input-block-level" >
            <option value="pre_alerts_yes">Yes</option>
            <option value="normal_cell">No</option>
        </select>
    </div>

    <label for="input_title">Alert Type:</label>
    <select name="cell_type" class="input-block-level">
        <option value="house">SMS Message (Standard)</option>
        <option value="normal_cell">SMS Message (Customized)</option>
        <option value="smart_phone">Phone Call (Standard Voice)</option>
        <option value="smart_phone">Phone Call (Customized Voice)</option>
        <option value="smart_phone">Phone Call (Audio Call)</option>
        <option value="smart_phone">Phone Call (Audio Prompt Call)</option>
    </select>
</div>
<div id="feedback_form" style="display: none;">feedback</div>
电话类型:
家庭电话
普通手机(非智能手机)
智能手机
发送预先警报:
对
不
预警类型:
对
不
警报类型:
短信(标准)
短信(定制)
电话(标准语音)
电话(定制语音)
电话(音频通话)
电话呼叫(音频提示呼叫)
反馈
像这样的jquery

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
    $('#select_form').on('change',function()
    {
        if ( $(this).val() == 'cellphone' ) {
            $('#nsp_form').show();
            $('#feedback_form').hide();
        } else if ( $(this).val() == 'smartphone' ) {
            $('#nsp_form').hide();
            $('#feedback_form').show();
        } else {
            $('#nsp_form').hide();
            $('#feedback_form').hide();         
        } 
    });

    $('#pre_alerts_yes_open').on('change',function(){
        if ( $(this).val() == 'pre_alerts_yes') {
            $('#nsp_form').show();
            $('#feedback_form').hide();
            $('#pre_alerts_yes_form').show();
        } else {
            $('#nsp_form').hide();
            $('#feedback_form').hide(); 
        }
    });
  <script>

$('select#form')。在('change',function()上
{
如果($(this.val()=='mobile'){
$('nsp_form').show();
$(“#反馈形式”).hide();
}else if($(this).val()=='smartphone'){
$('nsp_form').hide();
$(“#反馈形式”).show();
}否则{
$('nsp_form').hide();
$(“#反馈形式”).hide();
} 
});
$('pre#u alerts_yes_open')。在('change',function()上{
如果($(this).val()=='pre\u alerts\u yes'){
$('nsp_form').show();
$(“#反馈形式”).hide();
$('pre#u alerts_yes_form').show();
}否则{
$('nsp_form').hide();
$(“#反馈形式”).hide();
}
});

这正是让我恼火的地方。实际上,我是先打开街区的。如果您查看JSFIDLE的js部分中的第三部分代码,您将看到我首先打开nsp块,然后是pre_alerts_yes_表单,该表单似乎不起作用。我比你提供的更接近我的例子。谢谢你