2014-12-03 81 views
0

这是我的代码:更改输入文本的JavaScript文件

<div id="title"> 
    <label class="" id="title-text" for="title">Hello World</label> 
    <input type="text" name="doc-title" value="" id="title" autocomplete="off"> 
</div> 
<div id="title-select"> 
    <input type="radio" name="title_format" class="title-format" id="title-format-0" value="0" checked="checked"><label for="title-format-0">Title 1</label><br> 
    <input type="radio" name="title_format" class="title-format" id="title-format-1" value="1"> <label for="title-format-1">Title 2</label><br> 
    <input type="radio" name="title_format" class="title-format" id="title-format-2" value="2"> <label for="title-format-2">Title 3</label> 
</div> 

我需要的是,

  1. 点击一个无线电项目时,应显示相应的标题。说单击单选按钮2时,“标题2”应该更新上面的标签和输入元素。

  2. 这需要在EXTERNAL JS FILE中完成!

  3. 上面提到的2个DIV块实际上放置在单独的PHP文件中,并且严重级联。所以需要一个纯粹的JS修复。

目前我在我的外部文件是这样的(EXT文件得到正确的称呼):

$('input[name=title_format]').click(function() { 
    $('input[name=doc-title]').value('Title changed to 2'); 
}; 

Ofcourse该代码似乎完全无用。 希望有人能帮助我。

PS:我是js/jquery绝对noob,所以请原谅,如果这是一个简单的修复。 如果可能的话,我宁愿简单的JavaScript修复。 其他JQuery,我理解的是通过在我的js文件之前包含jquery-2.1.1.min.js文件。

回答

0

假设文件被正确加载,尝试...

变化.value.val

+0

尝试..没有工作。 :( – Shadez 2014-12-03 14:52:37

1

WORKING FIDDLE

你忘了关点击功能。 也做一个文件就绪功能。否则它不知道它是哪个元素。

$(document).ready(function(){ 
    $('[name=title_format]').click(function() { 
     $('[name=doc-title]').val('Title changed to '+$(this).val()); 
    }); 
}); 

编辑:现在将输入文本更改为单选按钮的值。

+0

好找...错过了那部分 – rfornal 2014-12-03 14:54:05

+0

非常感谢回答。yup小提琴的作品。 – Shadez 2014-12-03 15:12:26

+0

但代码不工作...因为我的代码遍布在多个php文件中,上面提到的代码大量级联并放置在多个文件中,但是2个DIV代码块保持不变,这意味着我需要一个完整的页面加载或其他东西来检查吗?对不起,请再次感谢修复。 – Shadez 2014-12-03 15:15:15

3

试试这个: HTML:

<div id="title"> 
     <label class="" id="title-text" for="title">Hello World</label> 
     <input type="text" name="doc-title" value="" id="title" autocomplete="off"> 
    </div> 
    <div id="title-select"> 
     <input type="radio" name="title_format" value="title3" onclick="changeTheText(this.value);" class="title-format" id="title-format-0" value="0" checked="checked"><label for="title-format-0">Title 1</label><br> 
     <input type="radio" name="title_format" value="title3" onclick="changeTheText(this.value);" class="title-format" id="title-format-1" value="1"> <label for="title-format-1">Title 2</label><br> 
     <input type="radio" name="title_format" value="title3" onclick="changeTheText(this.value);" class="title-format" id="title-format-2" value="2"> <label for="title-format-2">Title 3</label> 
    </div> 

的javascript:

function changeTheText(theValue) 
{ 
    document.getElementById('title').value = theValue; 
} 
+0

很抱歉,但我忘了提及..我绝对不能改变html!多数民众赞成在系统需要,所以只需要JS修复而不用更改html。 – Shadez 2014-12-03 14:56:32

+0

我会在稍后回来,但我今天有学校(我14) – www139 2014-12-03 14:57:37

+0

,我30!洛尔兹..谢谢反正评论。 – Shadez 2014-12-03 14:59:16

0

这里是你的HTML代码(刚才添加jQuery的CDN和外部JS文件)

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
<script src="jack.js"></script> 

<div id="title"> 
    <label class="" id="title-text" for="title">Hello World</label> 
    <input type="text" name="doc-title" value="" id="title" autocomplete="off"> 
</div> 
<div id="title-select"> 
    <input type="radio" name="title_format" class="title-format" id="title-format-0" value="0" checked="checked"><label for="title-format-0">Title 1</label><br> 
    <input type="radio" name="title_format" class="title-format" id="title-format-1" value="1"> <label for="title-format-1">Title 2</label><br> 
    <input type="radio" name="title_format" class="title-format" id="title-format-2" value="2"> <label for="title-format-2">Title 3</label> 
</div> 

和你外部javascript代码jack.js

$(document).ready(function(){ 
    $("input:radio[name=title_format]").click(function() { 

     var idVal = $(this).attr("id"); 
     var value = $("label[for='"+idVal+"']").text(); 

     $('input[name=doc-title]').val(value); 
    }); 
}); 
+0

感谢您的回复。 2个DIV块被放置在多个文件中并且严重级联。这会成为这个codefix的问题吗?因为它不是为我工作,所以想知道。 – Shadez 2014-12-03 15:19:12

+0

嗯然后你需要使用ID和类,如果我看看你的整个代码,然后得到一些关于 – 2014-12-03 15:21:22

+0

的想法,所以对于ID是“input:radio [ID = title-format-1]”和类似的?感谢您的回复..将尝试。 – Shadez 2014-12-03 15:28:58

0

试试这个

JS文件

$(document).ready(function(){ 
    $('#title-select .title-format').click(function() { 
    var title=$(this).next().text(); 
    $('#title :input').val(title); 
}); 
}) 

HTML脚本注册

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.js"></script> 
<script type="text/javascript" src="js-file.js"></script>