アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptで日付+乱数+選択肢の内容を反映させる方法を教えてください。

日付+乱数ででてきた値に選択肢(フォームのボタンやチェックボックス)のデータを付け加えるにはどうすればよいでしょうか?

例えば
乱数は5ケタで順番どおり表示する
7月7日
●A市(ボタン選択済) ○B市 ○C市

このような場合は

17070712345A

7月7日
○A市 ●B市(ボタン選択済) ○C市

17070712346B


このように日付と乱数を合体させた値に、選択肢の値も反映させるには
どうすればいいでしょうか?

A 回答 (2件)

仕様がはっきりしませんが、こんなかんじで



<script>
NodeList.prototype.addEventListener=function(x,y,z){
Array.prototype.map.call(this,function(i){
i.addEventListener(x,y,z);
});
}
var d=new Date();
var ymd=d.getFullYear().toString().substr(-2,2)+("0"+(d.getMonth()+1)).substr(-2,2)+("0"+d.getDate()).substr(-2,2)
window.onload=function(){
document.querySelectorAll('[name=city]').addEventListener('change',function(){
var rnd=(Math.random()*100000+100000).toString().substr(1,5);
console.log(ymd+rnd+this.value);
});
}
</script>
<label><input type="radio" name="city" value="A">A</label>
<label><input type="radio" name="city" value="B">B</label>
<label><input type="radio" name="city" value="C">C</label>
    • good
    • 0

こんにちは



>どうすればいいでしょうか?
単純に、文字列として連結していけば良いと思いますが・・・


日付の後の5桁の部分が「乱数」にあたるものと解釈しました。
以下、一例です。
(日付はローカルマシン依存です)

<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>

<style type="text/css">
label { margin: 0.5em; }
</style>

</head>
<body>

<form name="form0">
<label><input type="radio" name="si" value="A">A市</label>
<label><input type="radio" name="si" value="B">B市</label>
<label><input type="radio" name="si" value="C">C市</label>
</form>
<p>発生値:<span id="res"></span></p>


<script type="text/javascript">
document.querySelector("form[name='form0']").addEventListener("click", function(e){
if(e.target.nodeName != "INPUT") return;

var pad = function(num , n){ return ("0000" + num).slice(-n); }
var d = new Date();
var res = "" + (d.getFullYear() % 100);
res += pad(d.getMonth() + 1, 2) + pad(d.getDate(), 2);
res += pad(parseInt(Math.random()*100000), 5);
var e = document.querySelector("form[name='form0'] input[name='si']:checked");
document.getElementById("res").innerHTML = res + (e?e.value:"");
}, false);
</script>
</body>
</html>
    • good
    • 0
この回答へのお礼

素晴らしくわかりやすいご回答ありがとうございます!
助かりました!

お礼日時:2017/07/05 15:01

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