我无法获得所选Id的值。
这里是html和javascript
List<NewsModel> resultList = new ArrayList<>();
NewsAdapter adapter ;
public class NewsFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View newsView = inflater.inflate(R.layout.fragment_news, container, false);
RecyclerView newsRecyclerView = (RecyclerView) newsView.findViewById(R.id.news_list);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
newsRecyclerView.setLayoutManager(layoutManager);
adapter = new NewsAdapter(resultList);
newsRecyclerView.setAdapter(adapter);
getNews();
return newsView;
}
private void getNews(){
AsyncTask<Void,Void,String> asyncTask = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(final Void... voids) {
String resultString = null;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://www.career.fudan.edu.cn/jsp/career_talk_list.jsp?count=50&list=true")
.build();
Response response = null;
try {
response = client.newCall(request).execute();
resultString = response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return resultString;
}
@Override
protected void onPostExecute(final String resultString) {
super.onPostExecute(resultString);
resultList.clear();
resultList.addAll(getResult(resultString));
adapter.notifyDataSetChanged();
}
}.execute();
}
&#13;
我在chrome,opera和firefox上测试过它。什么都行不通。我也使用<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input id="input">
<button id="button" type="button" name="button">Search</button>
<script>
const der = document.getElementById('input').value;
document.getElementById('button').addEventListener('click',
function() {
alert(der);
});
</script>
</body>
</html>
而不是var
,这也不起作用。
我想获取所选Id的输入值。我真的无法在代码中看到任何问题
答案 0 :(得分:1)
const der = document.getElementById('input').value;
这是你的问题。 在输入任何内容之前,您将获得输入字段的值。 尝试这样做:
document.getElementById('button').addEventListener('click',
function() {
const der = document.getElementById('input').value;
alert(der);
});
答案 1 :(得分:0)
您需要将作业移至der
进入点击处理程序。目前,在加载页面时评估der
,而不是在单击按钮时评估。{/ p>
document.getElementById('button').addEventListener('click',
function(){
const der = document.getElementById('input').value;
alert(der);
});
答案 2 :(得分:0)
der
,并给出空值。单击按钮时重置它。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input id="input">
<button id="button" type="button" name="button">Search</button>
<script>
document.getElementById('button').addEventListener('click',
function() {
const der = document.getElementById('input').value;
alert(der);
});
</script>
</body>
</html>
答案 3 :(得分:0)
您的问题是您的代码会在页面加载时立即运行。由于页面加载时为空,因此该变量为空(您可以通过在控制台中键入der
来验证该变量,它不是错误,而是一个值)。
您可以通过将变量赋值信息移动到该函数来修复它,以便检查您何时准备就绪。
答案 4 :(得分:0)
您的脚本不起作用,因为您在填写之前从输入字段获取值,然后在单击按钮时提醒该值,而不是当前值。
解决方案是将获取值的行移动到单击按钮时调用的回调函数中:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input id="input">
<button id="button" type="button" name="button">Search</button>
<script>
document.getElementById('button').addEventListener('click',
function() {
const der = document.getElementById('input').value;
alert(der);
});
</script>
</body>
</html>
&#13;
答案 5 :(得分:0)
试试此代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input id="input" type="text">
<button id="button" type="button" name="button">Search</button>
<script>
document.getElementById('button').addEventListener('click',
function() {
alert(document.getElementById('input').value);
});
</script>
</body>
</html>
答案 6 :(得分:0)
在与表单输入进行任何交互之前,您的代码会在脚本执行后立即存储输入的值。一种解决方案是在- (UIImage*)imageWithImage:(UIImage *)sourceImage fixedHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha{
CGSize imageSize = [sourceImage size];
UIGraphicsBeginImageContext(imageSize);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 0, sourceImage.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGRect rect = CGRectMake(0, 0, sourceImage.size.width, sourceImage.size.height);
CGContextSetBlendMode(context, kCGBlendModeNormal);
CGContextDrawImage(context, rect, sourceImage.CGImage);
CGContextSetBlendMode(context, kCGBlendModeColor);
[[UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:alpha] setFill];
CGContextFillRect(context, rect);
CGContextSetBlendMode(context, kCGBlendModeDestinationIn);
CGContextDrawImage(context, rect, sourceImage.CGImage);
CGContextFlush(context);
UIImage *editedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return editedImage;
}
中存储对输入的引用,然后在click事件中调用const der
。
der.value
答案 7 :(得分:0)
使用DOM时,您希望从输入字段中获取值。按钮只是您捕捉事件的方式。这就是我们使用事件监听器的原因。触发事件后,程序会根据您要求检索的内容知道检索值。
所以,你应该像这样重写你的事件:
document.getElementById('button').addEventListener('click',
function() {
let der = document.getElementById('input').value;
//Now you can call some async code here to "play" with this value
});
注意:我使用了let
,因为如果此值会根据用户的输入而改变,我会看不到使用const
的原因。