性格悪い人が優勝

JavaScriptをつかってプログラムを作りたいのですが、3つ分からない点があるのでどなたかご教授お願いします。


わからない部分の一つ目は

添付した画像のようなWebページを作ったのですが、一番最初のテキストボックスに、例えばりかと入力して名前を下に表示ボタンを押すとここに出力させますの部分がりかさんと、さん付けで表示されるようにしたいのですがどうしたらさん付けにできるのかがわかりません。

二つ目は
消去ボタンを押すと先ほどりかさんと表示した部分を名前を消去しましたに置き換えたいのですがわかりません。


三つ目は

ラジオボタンの経営学科を選んでいたとして、テキストボックスにりかと入力してアラートで表示を押すとアラートで経営学科のりかさんと表示されるようにしたいです。
function関数を使った方法でやりたいと思っています。


下のように途中までは作ってみたのですが、この二つの部分がわからないのでわかる方よろしくお願いしますm(_ _)m

<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible"content="IE=edge">
<meta charset="utf-8">
<meta name="viewport"content="width=device-width,initial-scale=1">
<title>課題7</title>

<script>


function ckshow(){

var target=document.getElementById("output");

target.innerHTML=document.forms["fi_a"].elements["ti_a"].value;

}



function ckdel(){
document.forms["fi_a"].elements["ti_a"].value="";
}


function showMsg(){
window.alert()
}



</script>

</head>
<body>

<!----------フォーム---------->

<form name="fn_a" id="fi_a">

<p><label>
<input type="text" name="tn_a" id="ti_a" size="50"></label>

<label><input type="button" name="b1n_a" id="b1i_a" value="名前を下に表示"onClick="ckshow();"></label>
<label><input type="reset"value="消去"onClick="ckdel();"> </label> </p>

</form>
<hr>

<div id="output">ここに出力させます</div>

<form name="fn_a" id="fi_a">

<p><label>
<input type="radio" name="rdbn_a1" id="rdbi_a1" value="経済学科">経済学科
<input type="radio" name="rdbn_a1" id="rdbi_a1" value="経営学科">経営学科
<input type="radio" name="rdbn_a1" id="rdbi_a1" value="日本史学科">日本史学科
<input type="radio" name="rdbn_a1" id="rdbi_a1" value="国文学科">国文学科
</label></p>

<p><label><input type="text" name="tn_a" id="ti_a" size="50"></label>


<br><label><input type="button" name="b1n_a" id="b1i_a" value="アラートで表示"onClick="showMsg();"></label>


</form>

</body>
</html>

「JavaScriptをつかってプログラム」の質問画像

A 回答 (2件)

一つ目


二つの文章をくっつけるには + を使う
document.forms["fn_a"].elements["tn_a"].value + "さん";

二つ目
単純に代入する
target.innerHTML = "名前を消去しました";

三つ目
選択されたラジオボタンから値を読み取る方法
var radios = フォーム要素.elements['rdbn_a1'];
for(var i=0; i<radios.length; i++) {
_ if(radios[i].checked) ラジオの値 = radios[i].value;
}

その他
無意味に name や id を重複させないこと
<label> は radio の要素毎に囲むべき
    • good
    • 0

ざっとこんな感じ



<script>
function ckshow(){
var target=document.getElementById("output");
var v=document.forms["fi_a"].elements["ti_a"].value;
if(v!==""){
target.innerHTML=v+"さん";
}
}
function ckdel(){
var target=document.getElementById("output");
var v="名前を消去しました";
target.innerHTML=v;
document.forms["fi_a"].elements["ti_a"].value="";
}
function showMsg(){
var r=document.querySelector('form#fi_a input[name=rdbn_a1]:checked');
var v1=r?r.value:"";
var v2=document.forms["fi_a"].elements["ti_a"].value;
if(v1!=="" && v2!==""){
alert(v1+"の"+v2+"さん");
}
}
</script>
<form name="fn_a" id="fi_a">
<p><label>
<input type="text" name="tn_a" id="ti_a" size="50"></label>
<label><input type="button" name="b1n_a" id="b1i_a" value="名前を下に表示"onClick="ckshow();"></label>
<label><input type="reset"value="消去"onClick="ckdel();"> </label> </p>
</form>
<hr>
<div id="output">ここに出力させます</div>
<form name="fn_a" id="fi_a">
<p>
<label><input type="radio" name="rdbn_a1" id="rdbi_a1" value="経済学科">経済学科</label>
<label><input type="radio" name="rdbn_a1" id="rdbi_a1" value="経営学科">経営学科</label>
<label><input type="radio" name="rdbn_a1" id="rdbi_a1" value="日本史学科">日本史学科</label>
<label><input type="radio" name="rdbn_a1" id="rdbi_a1" value="国文学科">国文学科</label>
</p>
<p><label><input type="text" name="tn_a" id="ti_a" size="50"></label>
<br><label><input type="button" name="b1n_a" id="b1i_a" value="アラートで表示"onClick="showMsg();"></label>
</form>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!