【问题标题】:Javascript to create text field with dropdown menu options使用下拉菜单选项创建文本字段的 Javascript
【发布时间】:2020-09-03 01:59:06
【问题描述】:

一旦从下拉框中选择了某个值,我就一直在使用一些 Javascript 来创建一个文本字段,但是现在我对 Javascript 的了解有限,因为我需要对其进行编辑,以便新的下拉选项也创建一个文本域。当我尝试编辑时,它似乎不起作用。 这是我尝试使用的 js:

$(".claim").change(function() {
    $(".area").find(".field").remove();
    //or
    $('.area').remove('.field');
    if ($(this).val() == "Insurance") {
        $(".area").append("<input class='field' name='cost' type='text' placeholder='Cost' />");

    }
    if ($(this).val() == "Damage &lt;$100") {
        $(".area").append("<input class='field' name='cost' type='text' placeholder='Cost' />");

    }
});

这里是 html 下拉框:

<div id="area" class="area">

    <strong>Cases:</strong><input name="cases" type=text  placeholder="Cases ID" maxlength="7" style="width:129px;">
    <br />
    <strong>Claim:</strong>
    <select class="claim" id="claim" name="claim"> 
    <option value="">Select a Claim</option>
    <option value="Insurance">Insurance</option>  
    <option value="Warrenty">Warrenty</option>
    <option value="Damage &lt;$100">Damage &lt;$100</option>
    </select>

我曾尝试编辑 Javascript 和其他一些东西,但似乎都不起作用。我猜它很简单,但我现在不确定是否使用 Javascript,所以任何帮助都会很棒。

【问题讨论】:

    标签: javascript html jquery drop-down-menu jquery-events


    【解决方案1】:

    使用

    $(this).val() == "Damage <$100"
    

    而不是

    $(this).val() == "Damage &lt;$100"
    

    DEMO

    注意

    您正在比较字符串,因此不需要任何特殊字符。

    更多

    而不是$(this).val() 使用this.value,会更快。

    【讨论】:

    • 我尝试使用你在演示中使用的代码,我注意到一旦我将它与我的 jquery 代码的其余部分放在一起,Inserance 代码就不会工作,而不是 damge
    • @Matthew 这意味着上面的代码不起作用?是否可以在小提琴中发布您的整个 jQuery 代码?
    • 进行查找替换操作是什么意思?是的,这是相当多的代码
    • jsfiddle.net/matth4ck3r/p22Y7 这是链接,但由于某种原因,一旦将其放入 jsfiddle 似乎可以工作,但在我的机器上它将无法工作
    • @Matthew 看来您的代码运行良好。那么问题出在哪里?
    猜你喜欢
    • 2014-05-11
    • 2012-03-11
    • 2020-05-14
    • 2012-08-11
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    相关资源
    最近更新 更多