こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

strutsの画面遷移無しでtextの値をボタンで操作したいのですが・・・

最近strutsを始めた者です。よろしくお願いします。
画面上でボタンを押すとtextに表示中の値に”さん”を付けて
textに再表示(画面遷移ナシ)されるといった
動作をさせたいのですが上手くいきません。
javascriptの関数がおかしいとおもうのですが・・・
以下にソースを付けますのでどなたかご教授願います。

<%@page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html locale="true" >
<BODY>
<html:form action="/HelloWorld" >
<SCRIPT LANGUAGE=javascript>
<!--
function addItem( obj1 ){
var txt = obj1;
if ( txt.value == "" ) return;
var test = txt.value + "さん";

obj1.value = test;
}
-->
</SCRIPT>
<bean:message key="greeting" /><BR>
お名前をどうぞ。
<BR><html:text property="name" /><BR>
<html:button property="button" value="textの値にさんをつける" onclick="addItem(this.form.name,);" />


</html:form>
</BODY>
</html:html>

投稿日時 - 2008-07-20 08:14:37

QNo.4190169

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

関数に渡している引数が原因のようです。
> onclick="addItem(this.form.name,);

javascriptの this は使われる文脈によって指示するものが変わります。
※関数の先頭で以下一行を追加して確認することをお勧めします。
 alert(obj1.value);

対応としては、以下の方法でよいかと思われます。
onclick="addItem(document.forms[0].name);"

投稿日時 - 2008-07-21 20:29:13

お礼

ありがとうございました。
早速試してみます

投稿日時 - 2008-07-21 20:39:30

あなたにオススメの質問