代码之家  ›  专栏  ›  技术社区  ›  Jammer

Javascript根据select选项更改<p>内容

  •  3
  • Jammer  · 技术社区  · 14 年前

    Javascript不是最好的,所以我想我会问我哪里出错了。

    <p> id为pricedesc的标记。这是我到目前为止的情况。

    function priceText(sel)
    {
        var listingType = document.getElementById('listingtype');
        var priceDesc = document.getElementById('pricedesc');
        if ( sel.options[sel.selectedIndex].value == "Residential Letting" ) {
        priceDesc = "Enter price per month";
        }
        else if ( sel.options[sel.selectedIndex].value == "Short Let" ) {
        priceDesc = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Serviced Accommodation" ) {
        priceDesc = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Sale" ) {
        priceDesc = "Enter for sale price";
        }
    
    } 
    

    在我的身体里:

                <label>Listing Type:</label>
                <select name="listingtype" id="listingtype" onchange="priceText(this);">
                    <option value="Residential Letting">Residential Letting</option>
                    <option value="Short Let">Short Let</option>
                    <option value="Serviced Accommodation">Serviced Accommodation</option>
                    <option value="Sale">Sale</option>
                </select>
    
    
                <label>Price:</label>
                <p id="pricedesc">Enter price</p>
                <input name="price" type="text" id="price" value="<%=Request.Form("price")%>" maxlength="10" />
    

    谢谢你的帮助。

    J。

    3 回复  |  直到 14 年前
        1
  •  15
  •   Gordon Gustafson    14 年前

    更改段落内容的起始行

    priceDesc = "Enter price per month";
    

    priceDesc.innerHTML = "Enter price per month";
    

    目前,您正在更改 priceDesc 变量以包含字符串而不是段落节点。设置 innerHTML 节点的属性更改其中包含的html:D

        2
  •  1
  •   Mike Sherov    14 年前
    function priceText(sel)
    {
        var listingType = document.getElementById('listingtype');
        var priceDesc = document.getElementById('pricedesc');
        if ( sel.options[sel.selectedIndex].value == "Residential Letting" ) {
        priceDesc.innerHTML = "Enter price per month";
        }
        else if ( sel.options[sel.selectedIndex].value == "Short Let" ) {
        priceDesc.innerHTML = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Serviced Accommodation" ) {
        priceDesc.innerHTML = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Sale" ) {
        priceDesc.innerHTML = "Enter for sale price";
        }
    
    } 
    

    您想设置innerHTML属性。

    http://jquery.com/ ),因为它使这样的任务更简单。

        3
  •  0
  •   gblazex    14 年前

    顺便说一句,有一个误解:

    function priceText(sel) // <- but why pass sel here??
    {
        sel = document.getElementById('listingtype'); // <- when you select it here
        var priceDesc = document.getElementById('pricedesc');
        if ( sel.options[sel.selectedIndex].value == "Residential Letting" ) {
          priceDesc.innerHTML = "Enter price per month";
        }
        else if ( sel.options[sel.selectedIndex].value == "Short Let" ) {
          priceDesc.innerHTML = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Serviced Accommodation" ) {
          priceDesc.innerHTML = "Enter price per week";
        }
        else if ( sel.options[sel.selectedIndex].value == "Sale" ) {
          priceDesc.innerHTML = "Enter for sale price";
        }
    }
    

    Demo